Я использую приведенный ниже фрагмент кода, чтобы проверить, является ли данный пользователь частью группы рассылки в AD.
static bool IsUserMemberOf(string userName, string groupName)
{
using (var ctx = new PrincipalContext(ContextType.Domain))
using (var groupPrincipal = GroupPrincipal.FindByIdentity(ctx, groupName))
using (var userPrincipal = UserPrincipal.FindByIdentity(ctx, userName))
{
return userPrincipal.IsMemberOf(groupPrincipal);
}
}
я вызываю вышеуказанный метод со значениями как IsUserMemberOf("domain\\username","domain\\groupname")
, но я вижу исключение нулевого указателя, потому что groupPrincipal
имеет нулевое значение.
Любая помощь в этом отношении?
ctx.ConnectedServer
, чтобы убедиться, что вы подключены к домену, к которому вы ожидаете подключиться. Вы также можете попробовать использовать другое имя группы, чтобы проверить, не работает ли ваш код с этим. ФункцияuserPrincipal.GetGroups()
даст вам список имен, которые вы можете использовать. - person Frank Boyne   schedule 26.07.2011