Практическое руководство. Создание поставщика утверждений
Дата последнего изменения: 23 марта 2011 г.
Применимо к: SharePoint Foundation 2010
Поставщик утверждений выдает утверждения и упаковывает их в маркеры безопасности. У поставщика утверждений две роли: расширение и выбор.
Расширение утверждений позволяет приложению добавить дополнительные утверждения в маркер безопасности пользователя. Например, при выполнении входа Windows доменные службы Active Directory могут расширить все группы безопасности пользователя в маркер Windows. При использовании входа на основе утверждений приложение для управления отношениями с клиентами (CRM) может расширить роли из базы данных CRM. Наличие этих утверждений в маркере пользователя позволяет выполнять авторизацию ресурсов исходя из этих утверждений. Таким образом, эти утверждения используются, чтобы определить, имеет ли конкретный пользователь доступ к указанным ресурсам.
Утверждения могут отображаться в элементе управления "Выбор людей" при выборе утверждений. Выбор утверждений позволяет приложению выбирать утверждения в элементе управления "Выбор людей", например при настройке безопасности сайта SharePoint или службы SharePoint. Данная функциональная возможность позволяет выполнять поиск, разрешать и отображать утверждения.
![]() |
---|
Под элементом управления "Выбор людей" с возможностью выбора утверждений иногда подразумевают элемент управления Выбор утверждений. |
Для создания поставщика утверждений сначала необходимо создать класс, производный от класса SPClaimProvider.
![]() |
---|
Пример кода и дополнительные сведения о классе SPClaimProvider и его членах см. в описании SPClaimProvider. |
Обязательные реализации
Перечисленные ниже методы и свойства являются обязательными при создании поставщика утверждений.
Обязательное свойство.
Свойство Name является обязательным. Его имя должно быть уникальным в пределах фермы.
public abstract String Name
Требуется для элемента управления "Выбор утверждений"
Утверждения могут отображаться в элементе управления "Выбор людей" при выборе утверждений. Следующие методы в классе SPClaimProvider являются обязательными, если требуется реализовать выбор утверждений в элементе управления "Выбор людей".
protected abstract void FillSchema(SPProviderSchema schema);
protected abstract void FillClaimTypes(List<String> claimTypes);
protected abstract void FillClaimValueTypes(List<String> claimValueTypes);
protected abstract void FillEntityTypes(List<String> entityTypes);
Требуется для расширения утверждений
При добавлении дополнительных утверждений в маркер безопасности пользователя выполняется расширение утверждений. Если требуется расширить утверждения, необходимо реализовать следующие методы в классе SPClaimProvider.
public abstract bool SupportsEntityInformation
protected abstract void FillClaimsForEntity(Uri context, SPClaim entity, List<SPClaim> claims);
Требуется для отображения иерархии в левой панели элемента управления "Выбор утверждений"
Если требуется отобразить иерархию в левой панели элемента управления "Выбор утверждений", необходимо реализовать следующие методы в классе SPClaimProvider.
public abstract bool SupportsHierarchy
protected abstract void FillHierarchy(Uri context, String[] entityTypes, String hierarchyNodeID, int numberOfLevels, bool includeEntityData, SPProviderHierarchyTree hierarchy);
Требуется для разрешения утверждений в элементе управления "Ввод" элемента управления "Выбор утверждений"
Если требуется разрешать утверждения с помощью элемента управления "Ввод" элемента управления "Выбор утверждений", необходимо реализовать следующие методы в классе SPClaimProvider.
public abstract bool SupportsResolve
protected abstract void FillResolve(Uri context, String[] entityTypes, String resolveInput, List<PickerEntity> resolved);
protected abstract void FillResolve(Uri context, String[] entityTypes, SPClaim resolveInput, List<PickerEntity> resolved);
Требуется для поиска утверждений в элементе управления "Выбор утверждений"
Если требуется реализовать функцию поиска в элементе управления "Выбор утверждений", необходимо реализовать следующее свойство и метод в классе SPClaimProvider.
public abstract bool SupportsSearch
protected abstract void FillSearch(Uri context, String[] entityTypes, String searchPattern, String hierarchyNodeID, int maxCount, SPProviderHierarchyTree searchTree);
Полезный вспомогательный метод
Для создания объектов SPClaim можно также использовать вспомогательный метод.
Полезный вспомогательный метод для создания объектов SPClaim
В примере ниже показан вспомогательный метод для создания объектов SPClaim.
protected SPClaim CreateClaim(String claimType, String value, String valueType)