Estoy construyendo una nueva aplicación ASP.NET MVC (en C#) y uno de los requisitos es crear una nueva base de datos de miembros. Para esto, necesitaríamos roles para administrar los diferentes tipos de miembros y perfiles para administrar los metadatos adicionales adjuntos a cada miembro. Hasta ahora todo va bien, solo use MembershipProvider, RoleProvider y ProfileProvider estándar proporcionados como parte de .NET Framework.¿Cómo se permiten múltiples métodos de autenticación en ASP.NET?
Sin embargo, la trampa es que me gustaría permitir diferentes métodos de autenticación. Me gustaría que las cuentas y las credenciales de inicio de sesión tengan una relación de uno a varios (una cuenta puede tener un número de credenciales de inicio de sesión adjunto). Un usuario, por ejemplo, podría tener una cuenta de OpenID y ActiveDirectory adjunta a su cuenta.
Sin embargo, después de experimentar con algunas maneras, optamos por la ruta MembershipProvider (explica cómo se logró como respuesta a continuación).
Mi pregunta es, ¿cómo han hecho esto antes las personas y cómo la gente sugiere que lo aborde? Parece ser algo que se logra en una gran cantidad de sitios, sin embargo, una búsqueda aquí no arroja nada sólido para jugar.
EDIT: Después de buscar un buen período de horas durante la noche y esta mañana, todavía no estoy convencido de que matar a un único MembershipProvider hubiera sido la opción más fácil. ¿Tener múltiples MembershipProviders da el mismo efecto?
BOUNTY EDIT: Sin respuestas, asumo que no existe una solución más óptima que la que publiqué como respuesta. ¿Es este realmente el caso? Estoy ofreciendo una recompensa para tratar de ver si alguien tiene más ideas sobre esto y si hay mejores alternativas.
BOUNTY ACCEPT EDIT: Creo que WIF es la respuesta aceptada a continuación, para una versión .NET 4 y tal vez otras versiones, ya que probablemente funcione con 3.5. Aparte de eso, tal vez un MembershipProvider asesinado o adaptado aún puede ser relevante.
Guau, recién comenzaba a escribir mi propia respuesta con WIF cuando publicaste esto. Estoy usando una combinación de SQL y Active Directory para autenticar a mis usuarios usando varios métodos diferentes. WIF es genial, porque una vez que su STS (página de inicio de sesión) está configurada, emite "tokens" a los usuarios en forma de cookies. Los tokens identifican a los usuarios y especifican cadenas de información (reclamos) sobre los usuarios. El STS desacopla la autenticación de la lógica de su aplicación. Las afirmaciones del usuario pueden leerse mediante programación, o puede utilizar una clase especial 'ClaimsAuthorizationManager' para gestionar el acceso. –
WIF ciertamente parece resolver el problema por lo que puedo decir, pero no puede determinar su precio. No hubo mención aparente del costo (http: // msdn.microsoft.com/en-us/security/aa570351.aspx), pero eluden que esté disponible para su descarga para que yo lo evalúe. Si no es gratis (o está disponible con el servidor AD no más reciente, es posible que tenga algunos problemas. Sin embargo, sigue siendo una muy buena respuesta, por lo que +1 – Amadiere
@Amadiere WIF se lanzará junto con el .NET Framework cuando 4.0 se lanzó en abril de este año y, por supuesto, es gratuito. Ya está disponible para su descarga, y lo uso a diario y no he encontrado ningún problema. –