如何使用C#.NET 4.5中的GroupPrincipal创建广告组?

如何使用C#.NET 4.5中的GroupPrincipal创建广告组?,c#,.net,active-directory,.net-4.5,C#,.net,Active Directory,.net 4.5,我正在尝试在C#NET web应用程序中创建一个广告组。应用程序正在具有创建组的用户权限的应用程序池中运行。如果我在以该用户身份登录后尝试创建一个组,它可以正常工作,但不能从web应用程序创建。以下是相关代码: Log.debug("Testing group creation (apptest)."); PrincipalContext gpc = new PrincipalContext(ContextType.Domain, "FOO", "OU=Groups,OU=Foo,OU=Bar,

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

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.");
使用运行时的user/apppool,我可以很好地查找组和用户。我可以列举“组”OU,并在其中看到其他组

如果我尝试使用上面的OU字符串,调用gp.Save()时会得到“访问被拒绝”,这让我怀疑这是否是一个问题,因为它是作为Web应用程序运行的,还是与此相关的,因为它是手动工作的。或者可能我没有正确设置GroupPrincipal对象

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

这个代码理论上正确吗

我发现的几乎所有示例都使用LDAP和目录内容,我不想使用,也不应该使用(团队希望使用更新的内容)。其他的例子不是创建组


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

您确定web应用程序是以您认为运行它的用户的身份运行的吗?您的代码中的所有内容看起来都是正确的,而且这些症状看起来确实像是在一个用户下运行的,该用户在广告中没有创建新组的权限。我非常确定。我已经在运行时检查了WindowsIdentity(我想是这样的),并检查了IIS进程的运行情况。这就是我在调试时知道要附加到哪个进程的方式。我不知道还能查到什么,但我可以。我也在为我工作。谢谢