發(fā)布時(shí)間:2019-06-16 發(fā)布網(wǎng)站:腳本之家
腳本之家收集整理的這篇文章主要介紹了如何獲取asp.net Windows身份驗(yàn)證中的用戶詳細(xì)信息,腳本之家小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,。 我正在使用
Windows身份驗(yàn)證和訪問用戶名.
IIdentity winId = HttpContext.Current.User.Identity; string name = winId.Name;
但我想獲得其他詳細(xì)信息,如用戶全名和EmailID. 解決方法由于您在Windows網(wǎng)絡(luò)上,因此您需要查詢Active Directory以搜索用戶,然后獲取其屬性,如電子郵件 這是一個(gè)示例函數(shù)DisplayUser,它在Windows身份驗(yàn)證的網(wǎng)絡(luò)上給出了一個(gè)IIdentity,找到用戶的電子郵件: public static void Main() { DisplayUser(WindowsIdentity.GetCurrent()); Console.ReadKey(); } public static void DisplayUser(IIdentity id) { WindowsIdentity winId = id as WindowsIdentity; if (id == null) { Console.WriteLine("Identity is not a windows identity"); return; } string userInQuestion = winId.Name.Split('\\')[1]; string myDomain = winId.Name.Split('\\')[0]; // this is the domain that the user is in // the account that this program runs in should be authenticated in there DirectoryEntry entry = new DirectoryEntry("LDAP://" + myDomain); DirectorySearcher adSearcher = new DirectorySearcher(entry); adSearcher.SearchScope = SearchScope.Subtree; adSearcher.Filter = "(&(objectClass=user)(samaccountname=" + userInQuestion + "))"; SearchResult userObject = adSearcher.FindOne(); if (userObject != null) { string[] props = new string[] { "title","mail" }; foreach (string prop in props) { Console.WriteLine("{0} : {1}",prop,userObject.Properties[prop][0]); } } }
給出這個(gè): 編輯:如果您收到“用戶/密碼錯(cuò)誤” 代碼運(yùn)行的帳戶必須具有用戶域的訪問權(quán)限.如果您在asp.net中運(yùn)行代碼,則Web應(yīng)用程序必須在具有域訪問權(quán)限的應(yīng)用程序池下運(yùn)行.有關(guān)詳細(xì)信息,請(qǐng)參閱here 總結(jié)以上是腳本之家為你收集整理的如何獲取asp.net Windows身份驗(yàn)證中的用戶詳細(xì)信息全部?jī)?nèi)容,希望文章能夠幫你解決如何獲取asp.net Windows身份驗(yàn)證中的用戶詳細(xì)信息所遇到的程序開發(fā)問題,。
|