Программирование средств безопасности в SharePoint 2007 - Добавление прошедших проверку и внешних пользователей

ОГЛАВЛЕНИЕ

Добавление прошедших проверку и внешних пользователей

Так как же создавать новые профили WSS для пользователей, подтвердивших свою подлинность, используя учетные записи Active Directory? Если необходимо создать собственный компонент интерфейса пользователя, позволяющий стандартным пользователям, или владельцу семейства веб-узлов выбрать пользователя или группу из домена Active Directory, то однозначно стоит научиться использовать элемент управления PeoplePicker (см. рис. 1). Это удобный, пригодный для многократного использования элемент управления, поставляемый с WSS. Этот элемент управления можно добавить к собственноручно созданной странице приложения, или элементу управления User, используя тег элемента управления, выглядящий следующим образом:

 

Рис. 1 Элемент управления PeoplePicker

<SharePoint:PeopleEditor 
  ID="pickerPrincipal" 
  AllowEmpty="false" 
  ValidatorEnabled="true"
  MultiSelect="false" 
  SelectionSet="User, SecGroup, DL" 
  Width="280px"
  runat="server" />

В этом примере, я настроил элемент управления PeoplePicker, назначив свойство SelectSet со значениями User, SecGroup и DL. Эти параметры SelectSet настраивают элемент управления, чтобы позволить пользователю выбрать и разрешить с помощью Active Directory пользователя, группу или список рассылки.

К свойствам элемента управления PeoplePicker можно получить доступ программными методами, чтобы извлечь связанные с ним имена учетных записей пользователей для базовых учетных записей, после того, как пользователь выбрал одного или более участника безопасности с помощью этого элемента управления. Затем можно просто предоставить код, добавляющий этих участников к числу членов веб-узла и настраивающий их права доступа.

Теперь мне следует показать, как добавить внешнего пользователя или группу к числу членов веб-узла. Взглянув на объектную модель WSS, можно подумать, что следует просто добавлять внешних участников безопасности прямо в одно из семейств SPUser, такое как SiteUsers:

SPWeb site = SPContext.Current.Web;

site.SiteUsers.Add(@"LITWAREINC\BrianC",
  "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.",
  "Brian Cox",
  "Notes about Brian Cox");

site.SiteUsers.Add(@"LITWAREINC\AllFTE",
  "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.",
  "All Full-time Employees",
  "Notes about FTE DL");

Но хотя этот подход и создает профиль в списке данных о пользователях для внешнего участника безопасности, он не особо влияет на безопасность, поскольку не присваивает разрешений. Лучше добавлять новых внешних участников безопасности путем назначения им разрешений, давая тем самым доступ внутри текущего веб-узла. Однако, сперва следует научиться создавать и назначать уровни разрешений.