如何在 AD C# 中检查用户是否是通讯组列表/安全组的成员
我使用下面的代码来检查给定用户是否属于 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
具有空值。
在这方面有什么帮助吗?
I am using below piece of code to check the whether a given user is part of distribution group in 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);
}
}
i am calling above method with values as IsUserMemberOf("domain\\username","domain\\groupname")
But i see a null pointer exception because groupPrincipal
is having null value.
Any help in this regard?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这只是意味着:
返回空指针,因为您的组不存在于您的域中。您只需测试您的 var
ctx
、userPrincipal
和groupPrincipal
即可。It's just means that :
Returns a null pointer because your group is not in present in your domain. You just have to test your var
ctx
,userPrincipal
andgroupPrincipal
.实际上,我的组与我正在查询的用户位于不同的域中:
我对我的程序做了以下更改,现在正在工作。
我这样打电话:
}
Actually my Group is in different domain than the User which I am querying for:
I made below change to my program and working now.
and i am calling like this:
}