从ASP.Net BLL类中的Windows身份验证获取全名

时间:2009-08-01 01:17:14

标签: asp.net authentication

尝试弄清楚如何从我的ASP.Net应用程序中的BLL类获取在Active Directory中输入的当前用户的全名。到目前为止,我有:

   public static string Username
    {
        get
        {
            var name = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

            if (name.Contains("\\"))
            {
                var start = name.IndexOf("\\");

                if (name.Length > start)
                {
                    name = name.Substring(start + 1);
                }
            }

            return name;
        }
    }

这个问题是这将返回用户名,但我也需要全名。有人知道这是否可行?

1 个答案:

答案 0 :(得分:3)

使用DirectorySearcher ...

var search = new DirectorySearcher( new DirectoryEntry("LDAP://YourDomain") );
search.Filter = "(sAMAccountName=UserNameHere)"; // put the identity name here
var res  = search.FindOne();
var name = res["displayName"]; // I believe this is the right property