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

  1. En el archivo Web.config, en el elemento <system.web>, agregue un elemento <roleManager> y establezca el atributo enabled en true.

  2. Defina el atributo defaultProvider a SqlRoleProvider.

  3. Agregue un elemento secundario al elemento <roleManager>, agregue un elemento <providers>.

  4. 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, y applicationName, 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

  1. En el archivo Web.config, agregue un elemento <system.serviceModel>.

  2. Agregue un elemento <comportamientos> al elemento <system.ServiceModel>.

  3. Agregue un elemento <serviceBehaviors> al elemento <behaviors>.

  4. Agregue un elemento <comportamiento> y establezca el atributo name en un valor apropiado.

  5. Agregue un elemento <serviceAuthorization> en el elemento <behavior>.

  6. Defina el atributo principalPermissionMode a UseAspNetRoles.

  7. Defina el atributo roleProviderName a SqlRoleProvider. 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>  
    

Consulte también