1

我有两个 AD 组,分别是 Group1 和 Group2。我通过 Windows 应用程序将相同的用户添加到这些组中。我有文件夹说 abc 我附加了 AD Group1。在 abc 中,我创建了一个子文件夹 abcd 并通过禁用继承属性来附加 AD Group2。当尝试使用用户凭据访问该文件夹时,我可以访问 abc 但是当尝试访问 abcd 文件夹时出现异常,因为访问被拒绝。此异常的原因是什么,解决方案是什么?

4

1 回答 1

0

您总是可以测试以查看用户是否是组 1 和组 2 的成员....

像这样的东西:

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");

if(user != null)
{
GroupPrincipal group1 = GroupPrincipal.FindByIdentity(ctx, "group1");

if(group1 != null)
{
   bool userIsMemberOfGroup1 = user.IsMemberOf(group1);
}

GroupPrincipal group2 = GroupPrincipal.FindByIdentity(ctx, "group2");

if(group2 != null)
{
   bool userIsMemberOfGroup2 = user.IsMemberOf(group2);
}
}

这样,您永远不需要枚举用户所属的所有组 - 只需检查您感兴趣的那些组,

您应该检查System.DirectoryServices.AccountManagement(S.DS.AM) 命名空间。在这里阅读所有相关信息:

新的 S.DS.AM 使得在 AD 中与用户和组一起玩变得非常容易!

于 2012-10-24T15:35:19.070 回答