【问题标题】:C# Active directory Principal display name is nullC# Active Directory 主体显示名称为空
【发布时间】:2017-06-17 21:40:28
【问题描述】:

我正在尝试显示活动目录中的用户全名。它在我的本地运行良好。但是当我将此代码发布到服务器上的 IIS 时,它显示显示名称为空。可能是什么问题?我的帐户正在使用 Windows 身份验证。

using (var context = new PrincipalContext(ContextType.Domain))
            {
                var principal = UserPrincipal.FindByIdentity(context, User.Identity.Name);
                var displayName = principal?.DisplayName; 
}

【问题讨论】:

    标签: c# asp.net-mvc iis active-directory


    【解决方案1】:

    我必须使用 HostingEnvironment.Impersonate() 才能访问我的 IIS 服务器上的 AD 属性。 (在本地没有它也可以工作)

    using (HostingEnvironment.Impersonate())
    {
      // your code
    }
    

    此外,您必须将应用程序池的身份从“AppPoolIdentity”更改为“NetworkService”。

    【讨论】:

    • 这会引发错误用户 'DomainName\MachineName$' 登录失败。
    • 可能是权限问题。检查this
    猜你喜欢
    • 2020-06-28
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多