Попытка создать вложенные группы безопасности в Active Directory - PullRequest
0 голосов
/ 20 июля 2011

Я пытаюсь создать вложенные группы безопасности в активном каталоге со следующим кодом:

DirectoryEntry newContainer = dirEntry.Children.Add("CN=" + groupName, "group");
newContainer.Properties["description"].Value = groupId;

GrpType gt = GrpType.GlobalGrp | GrpType.SecurityGrp;
int typeNum = (int)gt;

newContainer.Properties["groupType"].Add(typeNum);
newContainer.Properties["sAMAccountName"].Add(groupName);

newContainer.CommitChanges();

У меня не возникает проблем при создании групп первого уровня, но при попытке создать подпрограммуГруппа безопасности внутри этих групп, я получаю ошибку " Наименование нарушения ", без дальнейшего ответа.

И, кстати, я могу вручную создать эти группы безопасности.

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Согласно справке вы можете найти: Howto: (Почти) все в Active Directory через C #

Вот пример того, что вы хотите сделать с помощью ADSI:

/* Connection to Active Directory
 */
DirectoryEntry deBase = new DirectoryEntry("LDAP://WM2008R2ENT:389/ou=Monou,dc=dom,dc=fr", "user", "password");

/* Group1 creation
 */
DirectoryEntry aGrp1 = deBase.Children.Add("cn=yourGrp1", "group");
aGrp1.Properties["description"].Value = "The description you want";
aGrp1.Properties["groupType"].Add(ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP | ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED);
aGrp1.Properties["sAMAccountName"].Add("yourGrp1");
aGrp1.CommitChanges();

/* Group2 creation
 */
DirectoryEntry aGrp2 = deBase.Children.Add("cn=yourGrp2", "group");
aGrp2.Properties["description"].Value = "The description you want";
aGrp2.Properties["groupType"].Add(ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP | ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED);
aGrp2.Properties["sAMAccountName"].Add("yourGrp2");
aGrp2.CommitChanges();

/* Group2 MemberOf Group1
 */
aGrp1.Properties["Member"].Add(aGrp2.Properties["distinguishedName"].Value);
aGrp1.CommitChanges();

С принципами безопасности , представленными в Framework .NET 3.5, вы можете сделать то же самое в кратчайшие сроки, см. * Управление принципами безопасности каталогов в .NET Framework 3.5

0 голосов
/ 10 октября 2013

Я вернусь позже с этим, а затем, возможно, лучше код

...