Ошибка: «Ошибка: пользователь не существует или не является уникальным» при добавлении пользователя в AD - PullRequest
3 голосов
/ 03 февраля 2012

Я хочу добавить пользователя в ActiveDirectory.

Я использую этот код

private SPUser CreateUser(string strLoginName, string strEMail, 
 string strName, string strNotes, string strSiteURL)
{
SPUser spReturn = null;
SPSite spSite = null;
SPWeb spWeb = null;

try
{
//Open the SharePoint site
spSite     = new SPSite(strSiteURL);
spWeb     = spSite.OpenWeb();

//Assign role and add user to site
SPRoleAssignment spRoleAssignment = 
    new SPRoleAssignment(strLoginName, strEMail, strName, strNotes);
//Using Contribute, might need high access
SPRoleDefinition spSPRoleDefinition = 
    spWeb.RoleDefinitions["Contribute"]; 

spRoleAssignment.RoleDefinitionBindings.Add(spSPRoleDefinition);
spWeb.RoleAssignments.Add(spRoleAssignment);

//Update site
spWeb.Update();
spReturn = spWeb.AllUsers[strLoginName];
}
catch(Exception)
{ 
}
finally
{
spWeb.Close();
spSite.Close();
 }

 return spReturn;
  }

когда spWeb.RoleAssignments.Add (spRoleAssignment); ошибка: «Ошибка: пользователь не существует или не является уникальным»

EDIT

У меня сработало следующее:

 SPUser user = spWeb.EnsureUser(strLoginName);
 SPRoleAssignment spRoleAssignment = 
 new SPRoleAssignment(user);

1 Ответ

0 голосов
/ 03 февраля 2012

Ваш код предоставит доступ Contribute только существующему пользователю Active Directory.

Если вы действительно хотите создать нового пользователя Active Directory, см. Создание пользователя Active Directory в .NET (C #) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...