System.DirectoryServices.AccountManagement.UserPrincipal — localhost, но не iis

Почему приведенный ниже код работает нормально, когда я запускаю свое веб-приложение на локальном хосте, но не работает, когда я устанавливаю его на сервер IIS?

using (HostingEnvironment.Impersonate())
{
    UserPrincipal activeUser = UserPrincipal.Current;
    String activeUserSid = activeUser.Sid.ToString();
    String activeUserUPN = activeUser.UserPrincipalName;
}

Пожалуйста, не предлагайте мне придерживаться HttpContext.Current.User, так как он не обеспечивает доступ к SID или UPN без дополнительных обращений к Active Directory.

Веб-приложение будет использоваться пользователями, прошедшими проверку подлинности Windows, из трех отдельных доменов, веб-сервер размещен в четвертом домене. Пул приложений настроен для работы под удостоверением NetworkService, а в конфигурации веб-приложения для олицетворения удостоверения задано значение true.

Сообщение об ошибке при запуске в IIS:

Ошибка в Page_Load(): UserPrincipal.Current.
System.InvalidCastException: невозможно преобразовать объект типа «System.DirectoryServices.AccountManagement.GroupPrincipal» для ввода «System.DirectoryServices.AccountManagement.UserPrincipal».
в System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext контекст, IdentityType identityType, String identityValue)
в System.DirectoryServices.AccountManagement.UserPrincipal.get_Current()
в webapp.Details.Default.Page_Load (отправитель объекта, EventArgs e)

EDIT : Пробовал следующее и, к сожалению, получил ту же ошибку.

UserPrincipal userPrincipal = UserPrincipal.Current;
Response.Write(userPrincipal.Name);
Principal userOrGroup = UserPrincipal.Current;
Response.Write(userOrGroup.Name);
9
задан GEOCHET 6 October 2015 в 02:47
поделиться