2015-06-22 3 views
0
string strName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; // "MW\\dalem" 
     string domainName = strName.Split('\\')[0]; 
     using(var pc = new PrincipalContext(ContextType.Domain, domainName)) 
      { 
       using (var user = new UserPrincipal(pc, Admin-Username, Admin-Pass, true)) 
       { 
        fullname = fname + " " + lname; 
        user.SamAccountName = username; 
        user.SetPassword(password); 
        user.GivenName = fname; 
        user.Surname = lname; 
        user.DisplayName = fullname; 
        user.Save(); 
       } 
      } 

Я пытаюсь добавить пользователя в активной директории, я получаю ошибку говоряC# Доступ запрещен при добавлении пользователя в Active Directory

"Доступ запрещен"

на линии user.Save();. Я не понимаю, почему, поскольку у меня есть полные права администратора. Это мой третий или пятый подход при попытке добавить пользователя в активный каталог.

+2

Является ли Visual Studio в режиме администратора? –

+0

Не было, но теперь, когда я открыл его в режиме администратора, я получаю сообщение об ошибке «Объект уже существует», но я не вижу его в Active Directory. – GK28

+0

Не можете ли вы просто использовать ' NULL' для имени домена, чтобы получить домен, к которому вы в данный момент подключены? –

ответ

0

Вы можете достичь этого, сохраняя контекст базы данных:

string strName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; // "MW\\dalem" 
     string domainName = strName.Split('\\')[0]; 
     using(var pc = new PrincipalContext(ContextType.Domain, domainName)) 
      { 
       using (var user = new UserPrincipal(pc, Admin-Username, Admin-Pass, true)) 
       { 
        fullname = fname + " " + lname; 
        user.SamAccountName = username; 
        user.SetPassword(password); 
        user.GivenName = fname; 
        user.Surname = lname; 
        user.DisplayName = fullname; 
        userPrincipal.Add(user); 
       } 
      pc.SaveChanges(); 
      } 
+0

Основной контекст не имеет этого метода – GK28

+0

- это контекст модели данных типа Entity (edmx)? – Sajal

+0

umm idk об этом, так как я новичок в этом, но pc.Savechanges(); подчеркнуто, и когда я наводил на него указатель мыши, он говорит: «System.DirectoryServices.AccountManagement.PrincipalContext не содержит защиты« SaveChanges »и метода расширений« SaveChanges »первого типа типа и т. д. – GK28

Смежные вопросы