我想通过User和GroupPrincipals实现将AD用户添加到本地计算机组,我认为它可以很好地工作。不幸的是,我继续得到一般访问被拒绝错误。我可能只是不理解正确的身份验证,但我认为我已经设置了正确的访问权限。以下是所谓的代码片段:
var ctx = new PrincipalContext(ContextType.Machine,
Environment.MachineName,
ConfigurationManager.AppSettings["MyUser"],
ConfigurationManager.AppSettings["MyPW"]);
var grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, "LocalGrp");
var adUser = ADService.GetUserByDomainUserName(vModel.ContactId);
var adCtx = new PrincipalContext(ContextType.Domain,
"myDomain.com",
ConfigurationManager.AppSettings["MyUser"],
ConfigurationManager.AppSettings["MyPW"])
;
var user = UserPrincipal.FindByIdentity(adCtx,
IdentityType.Guid,
adUser.UserGuid.ToString());
if (grp != null &&
user != null)
{
if(!user.IsMemberOf(grp))
{
grp.Members.Add(user);
grp.Save();
}
}
找到用户,找到该组,但是当我添加并到达grp.Save()步骤时,我会遇到一般访问被拒绝的异常。通过“MyUser”和“MyPW”打开ctx,我认为这将允许在机器上进行组操作,因为该帐户是机器本地管理员组的一部分。我是否可以不以这种方式混合机器/域上下文,或者是否存在我遗漏的身份验证问题?
答案 0 :(得分:0)
您是否在管理员模式下运行Visual Studio。即使您的登录具有管理员权限,如果您没有将其启动升级,您的程序也需要提升自己以使用这些权限。
请参阅: