所以我遵循了this教程,我可以成功登录,但现在我试图找出用户是否属于某个群组,我试过了:
if (User.IsInRole("group"))
与
一起enableSearchMethods="true"
似乎没有什么工作,也许我正在寻找错误的地方......任何人都有任何提示吗?
答案 0 :(得分:1)
如果您使用的是.NET 3.5及更高版本,则应查看System.DirectoryServices.AccountManagement
(S.DS.AM)命名空间。在这里阅读所有相关内容:
基本上,您可以定义域上下文并轻松在AD中查找用户和/或组:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();
// enumerate the groups found - check to find your group in question
}
新的S.DS.AM让您可以轻松地与AD中的用户和群组一起玩!
或者,您也可以找到用户和组主体:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
GroupPrincipal groupToCheck = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");
if(user != null && groupToCheck != null)
{
// this call will tell you - yes or no - whether that user is member of that group
bool isMember = user.IsMemberOf(groupToCheck);
}