我正在项目中的Active Directive Role修改模块上工作,并且在添加/删除用户角色时出现Access拒绝错误。我是AD服务器的管理员。
我注意到下面给出了一个方案。
1:AD中添加了新用户,没有任何角色。
2:为用户应用任何角色-(拒绝访问错误)
3:如果应用超级用户角色,则该角色已成功添加。
代码在下面给出
// Search for role in Adam.
DirectorySearcher directorySearcher = new DirectorySearcher(GetAdamSdsRoot());
directorySearcher.Filter = "(&(objectCategory=group)(cn=" + roleName + "))";
SearchResult searchResult = directorySearcher.FindOne();
// Remove user from role.
DirectoryEntry directoryEntry = searchResult.GetDirectoryEntry();
directoryEntry.Properties["member"].Remove("<SID=" + GetActiveDirectoryUserSid(userName) + ">");
directoryEntry.CommitChanges();
答案 0 :(得分:0)
对于一个来说,这是行不通的:
directoryEntry.Properties["member"].Remove("<SID=" + GetActiveDirectoryUserSid(userName) + ">");
member
属性是成员的distinguishedName
属性列表,而不是其SID。因此,您需要删除用户的distinguishedName
,而不是SID。
但是,如果那是唯一的问题,则不会出现“拒绝访问”的例外。
我知道您说过您是管理员,但是您是否在管理员凭据下运行它?