У меня есть приложение asp.net MVC, которое настроено на использование проверки подлинности Windows. Я пытаюсь получить группы из UserPrincipal, используя это.Группы AD для пользователей Windows
UserPrincipal.Current.GetGroups()
Это нормально работает при работе с Visual Studio, но не удается при размещении в IIS. Пул приложений настроен для интегрированного конвейера и идентификатора сетевой службы. Выдает ниже ошибок:
Unable to cast object of type 'System.DirectoryServices.AccountManagement.GroupPrincipal' to type 'System.DirectoryServices.AccountManagement.UserPrincipal'."
Я попытался олицетворением кода
WindowsIdentity identity = (WindowsIdentity)HttpContext.Current.User.Identity;
using (WindowsImpersonationContext wic = identity.Impersonate())
{
PrincipalContext context = new PrincipalContext(ContextType.Domain, "DOMAIN NAME");
UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "User Name");
}
FindByIdentity бросает ошибку.
000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1
Как я могу получить текущие группы пользователей из AD?
как вы решили эту проблему? – Bargitta