1

所以我按照这个教程,我可以成功登录,但现在我试图找出用户是否属于一个组,我试过了:

if (User.IsInRole("group"))

随着

enableSearchMethods="true"

但似乎没有任何效果,也许我看错了地方......有人有任何提示吗?

4

1 回答 1

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); 
}
于 2012-04-23T15:52:29.173 回答