从C#上的Active Directory获取全名

时间:2012-09-19 14:08:05

标签: c# active-directory

我在从Active Directory获取用户的名字和姓氏(全名)时遇到问题。代码如下。

在我的本地运行项目没问题。我可以随心所欲地获取数据。将项目发布到远程服务器后,它不允许我获取名字和姓氏(全名),它只允许获取域名和用户名。我该如何解决?

private string GetNameSurname()
    {
        string[] retVal;
        //Pull the username out of the domain\user string.  
        retVal = Page.User.Identity.Name.Split(new string[] { @"\"},StringSplitOptions.RemoveEmptyEntries);

        DirectoryEntry userEntry = new DirectoryEntry("WinNT://" + retVal[0] + "/" + retVal[1]);
        string namesurname = (string)userEntry.Properties["fullname"].Value;
        //return retVal[1];
        //retVal[1] gives username. 
        //retVal[0] gives domain name
        return namesurname;
    }

2 个答案:

答案 0 :(得分:1)

您是否正在运行代码以测试同一用户?

您是否在dev中测试AD,Windows本地帐户具有“全名”字段(可选),但在AD中,字段的命名方式不同。另外,你在谈论同一版本的AD吗?

根据MSDN article,没有名为Full Name的字段,只有First Name,Surname和Display Name。

答案 1 :(得分:0)

我认为你的问题与证书有关。在连接到活动目录时尝试添加管理员用户名和密码。