Практическое руководство. Использование поставщика ролей 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>
элемент и задайте для его атрибутаtrue
значениеenabled
.Задайте для атрибута
defaultProvider
значениеSqlRoleProvider
.Добавьте
<providers>
элемент в качестве дочернего<roleManager>
элемента.В качестве дочернего элемента добавьте
<add>
элемент со следующими атрибутами, заданными для соответствующих значений:name
,type
connectionStringName
иapplicationName
, как показано в следующем примере.<providers>
<!-- 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>
элемент.<Добавьте элемент поведения> и задайте
name
атрибут соответствующим значением.<Добавьте службуAuthorization> в
<behavior>
элемент.Задайте для атрибута
principalPermissionMode
значениеUseAspNetRoles
.Задайте для атрибута
roleProviderName
значениеSqlRoleProvider
. В следующем примере показан фрагмент файла конфигурации.<behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="SqlRoleProvider" /> </behavior> </serviceBehaviors> </behaviors>