Tengo una aplicación MVC 3 que estoy creando y necesito encontrar una buena solución para gestionar la autenticación y la autorización. He utilizado Membresía, y no quiero usarla en este caso. Prefiero usar mi propio diseño y tablas. Sin embargo, estoy abierto a implementar mi lógica personalizada utilizando las interfaces integradas, si es apropiado.Ayuda con la solución de autenticación/autorización de MVC
Éstos son mis requisitos:
Un usuario puede ser parte de una o varias funciones.
Las funciones se pueden asignar a cualquier cantidad de "permisos" (muchos a muchos). Un permiso es algo así como "Puede editar las publicaciones de otros usuarios".
Cada acción del controlador puede permitir el acceso a una o más funciones (o puede no requerir autorización para páginas públicas).
También necesitaré un control de "nivel de función" sobre qué roles pueden ver/actualizar varios elementos en una vista. Puede usar permisos para conducir estos vs. roles.
Como nota al margen, probablemente también permitiré a los miembros registrarse con sus cuentas de Facebook y/o Twitter. Pero esto se puede hacer independientemente de la implementación de membresía personalizada, si es apropiado (es decir, crear un usuario personalizado al registrarse y luego vincularlo a la cuenta de FB/Twitter).
Estoy seguro de que alguien ha hecho algo así antes. Pero en base a la docena o más de blogs y publicaciones de SO que he visto sobre este tema, ninguna de las soluciones realmente se ajusta a esto, no parece. Pero hay una buena posibilidad de que no sea capaz de encajar las piezas, y algo apropiado es mirarme directamente a la cara.
Por ejemplo, he leído algo sobre la autenticación basada en reclamos vs. "basada en funciones", pero no estoy seguro de entender las diferencias suficientes para hacer una llamada, ni el clima o no requieren membresía ASP.NET. También he leído sobre la creación de membresía personalizada implementando IPrincipal e IIdentity y utilizando filtros de acción para controlar el acceso de los controladores, pero no encuentro ninguna guía exhaustiva para hacerlo, y todavía estoy bastante verde con los filtros de acción.
Tampoco estoy seguro de si debería usar alguno de los controles incorporados de .NET para el registro, la autenticación, la contraseña olvidada, etc. Mi instinto no es hacerlo, ya que normalmente me gusta construirlos yo mismo, y yo ' Tampoco estoy seguro de si funcionarían en una configuración personalizada. Pero si me equivoco, házmelo saber.
Gracias de antemano.
Puede que te guste mi enfoque http://stackoverflow.com/questions/3964989/how-to-pass-current-user-information-to-all-layers-in-ddd/3969014 # 3969014 –