2011-03-20 12 views
5

Quiero hacer una aplicación web donde el método de autenticación sea completamente configurable (puede ser abierto, puede ser una autenticación de Windows, puede ser cualquier otra cosa).¿Existe un marco para la autenticación abstracta en ASP.NET MVC?

Preferiría simplemente cambiar una configuración única en web.config para obtener una solución de autenticación diferente. La aplicación necesita un Principal/Identity con algún tipo de nombre de usuario (algunos otros detalles del usuario pueden ser buenos, pero no son necesarios en este momento).

¿Hay algún buen marco que me pueda ayudar o debería construir el mío?

Respuesta

3

¿Está familiarizado con la característica ASP.NET Membership incorporada? Se puede usar con ASP.NET MVC o WebForms. Puede conectar otros proveedores según sea necesario. Hay un proveedor de OpenID disponible en CodePlex, aunque no lo he usado.

+0

Sí, lo sé, sin embargo, proporciona solo una parte más simple, modelos, mientras estoy interesado en una solución completa. También la última vez que lo utilicé recuerdo problemas en la API. Pero lo veré una vez más, gracias. –

+0

Sí, creo que este es el mejor enfoque. Así es como implementé OpenID: combinar DotNetOpenAuth con ASP.NET La membresía es muy simple y directa. –

0

Para ampliar la respuesta de Ryan: Puede crear una clase que herede desde System.Web.Security.MembershipProvider (ubicada en la biblioteca System.Web.ApplicationServices en MVC3). Para configurar el proveedor de usar es necesario proporcionar entradas en su Web.config como la siguiente:

<!-- In configuration -> system.web --> 
<membership defaultProvider="ServicesMembershipProvider"> 
    <providers> 
    <clear/> 
    <add name="ServicesMembershipProvider" 
     type="APISite.Infrastructure.Web.Membership.ServicesMembershipProvider" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="false" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     applicationName="/"/> 
    </providers> 
</membership> 

Usted puede tener varios proveedores definidos en esta sección y establecer el defaultprovider a la que se desea utilizar en el momento .

Cuestiones relacionadas