脚本之家收集整理的这篇文章主要介绍了如何获取asp.net Windows身份验证中的用户详细信息,脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
IIdentity winId = HttpContext.Current.User.Identity;
string name = winId.Name;
但我想获得其他详细信息,如用户全名和EmailID.
这是一个示例函数DisplayUser,它在Windows身份验证的网络上给出了一个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]);
}
}
}
给出这个:
编辑:如果您收到“用户/密码错误”
代码运行的帐户必须具有用户域的访问权限.如果您在asp.net中运行代码,则Web应用程序必须在具有域访问权限的应用程序池下运行.有关详细信息,请参阅
以上是脚本之家为你收集整理的如何获取asp.net Windows身份验证中的用户详细信息全部内容,希望文章能够帮你解决如何获取asp.net Windows身份验证中的用户详细信息所遇到的程序开发问题。
联系客服