Използвам по-долу част от кода, за да проверя дали даден потребител е част от групата за разпространение в 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