我正在尝试从活动目录显示用户的全名。它在我的本地工作正常。但是,当我将此代码发布到服务器上的IIS时,它将显示名称显示为null。可能是什么问题?我的帐户正在使用Windows身份验证。
using (var context = new PrincipalContext(ContextType.Domain))
{
var principal = UserPrincipal.FindByIdentity(context, User.Identity.Name);
var displayName = principal?.DisplayName;
}
答案 0 :(得分:1)
我必须使用HostingEnvironment.Impersonate()才能访问我的IIS服务器上的AD属性。 (它没有在当地工作)
using (HostingEnvironment.Impersonate())
{
// your code
}
此外,您必须更改应用程序池的身份,以及#34; AppPoolIdentity"到" NetworkService"。