gpt4 book ai didi

c# - 如何在 C# .NET 4.5 中使用 GroupPrincipal 创建 AD 组?

转载 作者:行者123 更新时间:2023-12-05 07:59:36 24 4
gpt4 key购买 nike

我正在尝试在 C# .NET 网络应用程序中创建广告组。该应用程序在具有创建组的用户权限的应用程序池中运行。如果我在以该用户身份登录后尝试创建一个组,它工作正常,但不是来自网络应用程序。这是相关代码:

Log.debug("Testing group creation (apptest).");
PrincipalContext gpc = new PrincipalContext(ContextType.Domain, "FOO", "OU=Groups,OU=Foo,OU=Bar,OU=Baz,DC=corp,DC=edu");
GroupPrincipal gp = new GroupPrincipal(gpc, "apptest");
gp.Description = "test";
gp.IsSecurityGroup = true;
gp.GroupScope = GroupScope.Global;
gp.Save();
Log.debug("Group created successfully.");

使用运行它的用户/应用程序池,我可以很好地查找组和用户。我可以枚举“组”OU 并查看其中的其他组。

如果我尝试使用上面的 OU 字符串,我在调用 gp.Save() 时得到“访问被拒绝”,这让我想知道这是否是一个问题,因为它作为 webapp 或与之相关的东西运行,因为它有效手动。或者我没有正确设置 GroupPrincipal 对象。

如果我尝试在 OU 字符串前面加上 CN=apptest,我会在创建 GroupPrincipal 时得到“服务器上没有这样的对象”,这让我认为上面的原始字符串可能是正确的。

理论上这段代码是否正确?

我发现的几乎所有示例都使用了 LDAP 和目录的东西,我不想使用,也不应该使用(团队想要使用更新的东西)。其他示例没有创建组。

更新:尝试Save(gpc) 也不起作用,并且不存在具有该名称的组。

最佳答案

这是一篇非常古老的帖子,但我自己也在寻找答案,对我有用的是完全按照帖子中指定的方式进行操作,但主体上下文的创建方式除外。这就是我创建主体上下文的方式:

new PrincipalContext(ContextType.Domain, serverName, userWithAccess, userWithAccessPassword);

我没有检查它是否适用于 4.5,因为我不需要它。

关于c# - 如何在 C# .NET 4.5 中使用 GroupPrincipal 创建 AD 组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21338711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com