Программное добавление пользователей на сайт с поддержкой утверждений в SharePoint 2010
Исходная статья опубликована в субботу, 14 января 2012 г.
На днях мой друг рассказал мне об интересной проблеме. Он пытался программным образом добавить нового пользователя на сайт с поддержкой утверждений Windows и столкнулся с целым рядом затруднений. Первая попытка добавить пользователя, указав имя домена и имя пользователя с помощью класса SPRoleAssignment, окончилась неудачей. Затем он попытался слегка изменить свой подход, добавив значение, закодированное с использованием утверждений, для имени пользователя, и заставил частично работать этот метод, однако получил какие-то странные побочные эффекты, например двукратное появление имени. Я не смог лично проверить все возникшие у него варианты и проблемы, но смог найти способ, который сработал с первой же попытки. Я воспользовался методом EnsureUser в SPWeb. Это намного проще, чем возиться с поиском закодированного имени учетной записи. Это также намного проще, поскольку достаточно передать только имя учетной записи вместо четырех параметров, которые обычно необходимо использовать для добавления пользователя. EnsureUser автоматически кодирует имя и позволяет реально упростить код.
Вот короткий пример для полноты изложения:
using (SPSite theSite = new SPSite("https://foo"))
{
using (SPWeb theWeb = theSite.OpenWeb())
{
SPUser theUser = theWeb.EnsureUser("domain\username");
}
}
Это локализованная запись блога. Исходная статья находится по адресу: Adding Users Programmatically to A Claims Site in SharePoint 2010