Instrukcje: Używanie dostawcy ról ASP.NET razem z usługą
Dostawca ról ASP.NET (w połączeniu z dostawcą członkostwa ASP.NET) to funkcja umożliwiająca deweloperom ASP.NET tworzenie witryn sieci Web, które umożliwiają użytkownikom tworzenie konta z witryną i przypisywanie ról do celów autoryzacji. Dzięki tej funkcji każdy użytkownik może ustanowić konto z witryną i zalogować się w celu uzyskania wyłącznego dostępu do witryny i jej usług. Jest to w przeciwieństwie do zabezpieczeń systemu Windows, co wymaga od użytkowników posiadania kont w domenie systemu Windows. Zamiast tego każdy użytkownik, który dostarcza swoje poświadczenia (kombinację nazwy użytkownika/hasła), może korzystać z witryny i jej usług.
Aby zapoznać się z przykładową aplikacją, zobacz Członkostwo i dostawca ról. Aby uzyskać więcej informacji na temat funkcji dostawcy członkostwa ASP.NET, zobacz Instrukcje: korzystanie z dostawcy członkostwa ASP.NET.
Funkcja dostawcy ról używa bazy danych programu SQL Server do przechowywania informacji o użytkowniku. Deweloperzy programu Windows Communication Foundation (WCF) mogą korzystać z tych funkcji w celach bezpieczeństwa. W przypadku integracji z aplikacją WCF użytkownicy muszą podać kombinację nazwy użytkownika/hasła do aplikacji klienckiej WCF. Aby umożliwić programowi WCF korzystanie z bazy danych, należy utworzyć wystąpienie ServiceAuthorizationBehavior klasy, ustawić jej PrincipalPermissionMode właściwość na UseAspNetRoles, a następnie dodać wystąpienie do kolekcji zachowań ServiceHost hostujących usługę.
Konfigurowanie dostawcy roli
W pliku Web.config w obszarze
<system.web>
elementu dodaj<roleManager>
element i ustaw jegoenabled
atrybut natrue
.defaultProvider
Ustaw atrybut naSqlRoleProvider
.Jako element podrzędny
<roleManager>
do elementu dodaj<providers>
element.Jako element podrzędny
<providers>
do elementu dodaj<add>
element z następującymi atrybutami ustawionymi na odpowiednie wartości:name
, ,connectionStringName
type
iapplicationName
, jak pokazano w poniższym przykładzie.<!-- 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>
Konfigurowanie usługi do korzystania z dostawcy ról
W pliku Web.config dodaj element system.serviceModel>.<
<Dodaj element behaviors> do
<system.ServiceModel>
elementu .Dodaj element <serviceBehaviors.
<behaviors>
><Dodaj element zachowania> i ustaw
name
atrybut na odpowiednią wartość.Dodaj usługęAuthorization >< do
<behavior>
elementu .principalPermissionMode
Ustaw atrybut naUseAspNetRoles
.roleProviderName
Ustaw atrybut naSqlRoleProvider
. W poniższym przykładzie pokazano fragment konfiguracji.<behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="SqlRoleProvider" /> </behavior> </serviceBehaviors> </behaviors>