2011-03-17 12 views
39

Estoy agregando una nueva área a una aplicación de maquinilla mvc 3 existente como área de administración para administrar algunas configuraciones y contenido. El resto del sitio está actualmente protegido por un proveedor personalizado que autentica a nuestros clientes. Ahora necesito autenticar a algunos empleados para acceder al área de administración. Los datos del usuario del cliente están en una base de datos y un formato totalmente diferentes a los que necesito para nuestros empleados.Uso de múltiples proveedores de membresía dentro de la aplicación ASP.Net MVC 3

¿Esto es posible sin muchos dolores de cabeza?

Respuesta

58

En realidad, hay muy poco dolor de cabeza involucrado.

Sólo tienes que añadir todos los MembershipProviders que desee en web.config:

<membership defaultProvider="MembershipProvider1"> 
    <providers> 
    <clear/> 
    <add name="MembershipProvider1" type="MvcApplication.MembershipProvider1" /> 
    <add name="MembershipProvider2" type="MvcApplication.MembershipProvider2" /> 
    <add name="AspNetSqlMembershipProvider" 
     type="System.Web.Security.SqlMembershipProvider"  
     connectionStringName="ApplicationServices" /> 
    </providers> 
</membership> 

Como se puede ver, he añadido dos proveedores. También he especificado un proveedor predeterminado.

Entonces puede cambiar entre los dos así:

var membershipProvider1 = Membership.Providers["MembershipProvider1"]; 
membershipProvider1.ValidateUser("Mike", "banana"); 

var membershipProvider2 = Membership.Providers["MembershipProvider2"]; 
membershipProvider2.ValidateUser("Mike", "orange"); 

es probable que desee para envolver esto en un servicio de aplicación o algo, pero se entiende la idea. No tanto dolor de cabeza, ¿verdad?

+0

no, mucho más fácil de lo que pensaba ... gracias – JBeckton

+3

Gran pregunta, gran respuesta. Gracias chicos :) – Marchy

+3

@Marchy gran comentario: D –

Cuestiones relacionadas