Как использовать поставщик ролей ASP.NET со службой
Поставщик ролей ASP.NET (совместно с поставщиком ролей ASP.NET) — функция, позволяющая разработчикам ASP.NET создавать веб-сайты, на которых пользователи могут создавать учетные записи и получать роли, используемые для авторизации. Эта функция позволяет любому пользователю создать на сайте учетную запись и при входе получать монопольный доступ к сайту и его службам. В этом заключается отличие от безопасности Windows, по условиям которой пользователи обязаны создавать ученые записи в домене Windows. Вместо этого любой пользователь, который предоставляет свои учетные данные (сочетание имени пользователя и пароля), может использовать сайт и его службы.
Пример приложения см. в разделе Поставщик членства и ролей. Дополнительные сведения функции поставщика ролей ASP.NET см. в разделе Как использовать поставщик членства ASP.NET.
Функция поставщика ролей хранит информацию о пользователях в базе данных SQL Server. Разработчики Windows Communication Foundation (WCF) могут пользоваться этими функциями для реализации безопасности. Когда эти функции интегрированы в приложение WCF, пользователи должны предоставлять сочетание имя/пароль пользователя клиентскому приложению WCF. Чтобы включить использование базы данных WCF, необходимо создать экземпляр класса ServiceAuthorizationBehavior, задать его свойству PrincipalPermissionMode значение UseAspNetRoles и добавить экземпляр в коллекцию поведений узла ServiceHost, в котором размещена служба.
Настройка поставщика ролей
В файле Web.config в элементе <system.web> добавьте элемент <roleManager> и присвойте его атрибуту enabled значение true.
Задайте для атрибута defaultProvider значение SqlRoleProvider.
Добавьте элемент <providers> в качестве дочернего для элемента <roleManager>.
В качестве дочернего элемента <providers> добавьте элемент <add>, присвоив надлежащие значения следующим атрибутам: name, type, connectionStringName и applicationName, как показано в следующем примере.
<!-- Configure the Sql Role Provider. --> <roleManager enabled ="true" defaultProvider ="SqlRoleProvider" > <providers> <add name ="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="SqlConn" applicationName="MembershipAndRoleProviderSample"/> </providers> </roleManager>
Настройка службы на использование поставщика ролей
В файле Web.config добавьте элемент <system.ServiceModel>.
Добавьте элемент <behaviors> в элемент <system.ServiceModel>.
Добавьте элемент serviceBehaviors section в элемент <behaviors>.
Добавьте элемент Behavior element и присвойте атрибуту name соответствующее значение.
Добавьте элемент <serviceAuthorization> element в элемент <behavior>.
Задайте для атрибута principalPermissionMode значение UseAspNetRoles.
Задайте для атрибута roleProviderName значение SqlRoleProvider. В следующем примере показан фрагмент файла конфигурации.
<behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="SqlRoleProvider" /> </behavior> </serviceBehaviors> </behaviors>
См. также
Задачи
Поставщик членства и ролей
Как использовать поставщик членства ASP.NET