所以我按照这个教程,我可以成功登录,但现在我试图找出用户是否属于一个组,我试过了:
if (User.IsInRole("group"))
随着
enableSearchMethods="true"
但似乎没有任何效果,也许我看错了地方......有人有任何提示吗?
所以我按照这个教程,我可以成功登录,但现在我试图找出用户是否属于一个组,我试过了:
if (User.IsInRole("group"))
随着
enableSearchMethods="true"
但似乎没有任何效果,也许我看错了地方......有人有任何提示吗?
如果您使用的是 .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);
}