Procedimiento para usar el proveedor de roles ASP.NET con un servicio
El proveedor de funciones ASP.NET (junto con el proveedor de pertenencia ASP.NET) es una característica que permite a los programadores ASP.NET crear sitios web que permitan a los usuarios crear una cuenta con un sitio web y que se les asignen roles para fines de autorización. Con esta característica, cualquier usuario puede establecer una cuenta con el sitio e iniciar sesión para el acceso exclusivo al sitio y sus servicios. Esto contrasta con la seguridad de Windows, que exige a los usuarios que tengan cuentas en un dominio de Windows. En su lugar, cualquier usuario que proporcione las credenciales (la combinación de nombre de usuario y contraseña) puede usar el sitio web y los servicios.
Para obtener una aplicación de ejemplo, consulte Proveedor de pertenencia y roles. Para obtener más información sobre la característica de proveedor de pertenencia ASP.NET, consulte Procedimiento para usar el proveedor de pertenencia ASP.NET.
La característica de proveedor de roles usa una base de datos de SQL Server para almacenar información sobre el usuario. Los programadores de Windows Communication Foundation (WCF) se pueden beneficiar de estas características para fines de seguridad. Cuando se integran en una aplicación WCF, los usuarios deben proporcionar una combinación de nombre de usuario y contraseña a la aplicación cliente WCF. Para permitir que WCF use la base de datos, debe crear una instancia de la clase ServiceAuthorizationBehavior, establecer la propiedad PrincipalPermissionMode en UseAspNetRoles y agregar la instancia a la colección de comportamientos de ServiceHost que hospeda el servicio.
Configuración del proveedor de roles
En el archivo Web.config, en el elemento
<system.web>
, agregue un elemento<roleManager>
y establezca el atributoenabled
entrue
.Defina el atributo
defaultProvider
aSqlRoleProvider
.Agregue un elemento secundario al elemento
<roleManager>
, agregue un elemento<providers>
.Como un elemento secundario del elemento
<providers>
, agregue un elemento<add>
con los atributos siguientes que están establecidos en los valores adecuados:name
,type
,connectionStringName
, yapplicationName
, tal y como se muestra en el siguiente ejemplo.<!-- 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>
Configuración del servicio para usar el proveedor de roles
En el archivo Web.config, agregue un elemento <system.serviceModel>.
Agregue un elemento <comportamientos> al elemento
<system.ServiceModel>
.Agregue un elemento <serviceBehaviors> al elemento
<behaviors>
.Agregue un elemento <comportamiento> y establezca el atributo
name
en un valor apropiado.Agregue un elemento <serviceAuthorization> en el elemento
<behavior>
.Defina el atributo
principalPermissionMode
aUseAspNetRoles
.Defina el atributo
roleProviderName
aSqlRoleProvider
. En el ejemplo siguiente se muestra un fragmento de la configuración.<behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="SqlRoleProvider" /> </behavior> </serviceBehaviors> </behaviors>