我正在创建用于管理Active Directory的Web应用程序。我想在某个容器中创建一个组。
var groups = new List<Models.Group>();
PrincipalContext ctx =
new PrincipalContext(ContextType.Domain, domain, container, userName, password);
GroupPrincipal oGroupPrincipal = new GroupPrincipal(ctx);
oGroupPrincipal.Description = mGroup.GroupName;
oGroupPrincipal.GroupScope = mGroup.GroupScope;
oGroupPrincipal.IsSecurityGroup = mGroup.IsSecurity;
oGroupPrincipal.Save();
但我收到以下错误:
无法将类型'string'隐式转换为
System.DirectoryServices.AccountManagement.GroupScope?”
我不确定如何处理。当它是列表中的对象字符串时,应如何将GroupScope转换为对象GroupScope?
我也收到此错误:
在保存之前,必须在此存储中将SamAccountName或Name分配给新创建的Principal对象。
最佳答案
组作用域是一个具有局部,全局和通用值的枚举,似乎您尚未转换传入的值。
尝试将其设置为静态值:
oGroupPrincipal.GroupScope = System.DirectoryServices.AccountManagement.GroupScope.Local;
如果这样可以清除错误,请尝试解析您的传入字符串:
oGroupPrincipal.GroupScope = (System.DirectoryServices.AccountManagement.GroupScope)Enum.Parse(typeof(System.DirectoryServices.AccountManagement.GroupScope),value);