0
我想實現通過User和GroupPrincipals將AD用戶添加到本地計算機組,並且我認爲它會很好用和簡單。不幸的是,我繼續得到一般拒絕訪問錯誤。我可能只是不理解正確的身份驗證,但我認爲我已經設置了正確的訪問權限。這裏是被稱爲什麼代碼片段:通過AccountManagement將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,我認爲這將允許在機器上進行組操作,因爲該帳戶是機器本地管理員組的一部分。我能不能以這種方式混合機器/域環境,還是存在一個我只是缺少的身份驗證問題?
我會嘗試這一點,但我也跑了一個開發服務器上,它的表現同樣的方式 - 拒絕即使身份的訪問應用程序池(以及創建上下文時使用的用戶名/密碼)是機器管理員組的一部分。 – 2012-08-13 18:49:52