Поделиться через


Как использовать поставщик ролей 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, в котором размещена служба.

Настройка поставщика ролей

  1. В файле Web.config в элементе <system.web> добавьте элемент <roleManager> и присвойте его атрибуту enabled значение true.

  2. Задайте для атрибута defaultProvider значение SqlRoleProvider.

  3. Добавьте элемент <providers> в качестве дочернего для элемента <roleManager>.

  4. В качестве дочернего элемента <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>
    

Настройка службы на использование поставщика ролей

  1. В файле Web.config добавьте элемент <system.ServiceModel>.

  2. Добавьте элемент <behaviors> в элемент <system.ServiceModel>.

  3. Добавьте элемент serviceBehaviors section в элемент <behaviors>.

  4. Добавьте элемент Behavior element и присвойте атрибуту name соответствующее значение.

  5. Добавьте элемент <serviceAuthorization> element в элемент <behavior>.

  6. Задайте для атрибута principalPermissionMode значение UseAspNetRoles.

  7. Задайте для атрибута roleProviderName значение SqlRoleProvider. В следующем примере показан фрагмент файла конфигурации.

    <behaviors>
     <serviceBehaviors>
      <behavior name="CalculatorServiceBehavior">
       <serviceAuthorization principalPermissionMode ="UseAspNetRoles"
                             roleProviderName ="SqlRoleProvider" />
      </behavior>
     </serviceBehaviors>
    </behaviors>
    

См. также

Задачи

Поставщик членства и ролей
Как использовать поставщик членства ASP.NET