asp.net - tutorial - Alternativas a la membresía.Net
membership asp net visual studio 2015 (5)
¿Hay alternativas / mods a .net Membership?
Lo encuentro bastante restrictivo;
No se puede cambiar el nombre de usuario, fácilmente. Debe crear un nuevo usuario y copiar los campos, pero luego pierde la clave principal O tiene que editar la tabla de usuario directamente.
Los campos de perfil adicionales se almacenan juntos como un blob.
Como el modelo de membresía de ASP.NET se basa en los proveedores, hay varias alternativas disponibles.
De forma predeterminada, los usuarios tienen una ProviderUserKey, que es un GUID, y esa es la clave principal de la base de datos, por lo que debería poder escribir algo para cambiar su nombre de usuario si lo desea.
En términos del perfil, sí, el blob predeterminado es bastante molesto. Puede echar un vistazo al proveedor de perfiles de tabla SQL que asigna los perfiles a las tablas, o rodar el suyo con bastante rapidez.
En cuanto al perfil, hay un par de alternativas por ahí . Estos dos utilizan una tabla o le permiten llamar a un procedimiento almacenado. Por supuesto también puedes implementar el tuyo propio. Personalmente me cansé de usar los Proveedores de perfiles y descubrí que manejar el perfil en mi código era más fácil de controlar y contener.
En cuanto a las otras cuestiones, también puede implementar su propio proveedor. Microsoft lanzó el código fuente a los proveedores de SQL para que pueda darle un punto de partida.
En lo que respecta a cambiar el nombre de usuario, eso se puede lograr fácilmente utilizando el método CreateNewUser () y completando los campos correspondientes en función del usuario actual, y luego eliminando el usuario actual.
Los campos de perfil no forman parte del modelo .NET Membership Provider, sino que forman parte del perfil de proveedor. Este es un tema muy debatido y para la mayoría de las máquinas de producción, la forma correcta de hacerlo es instalar una solución de proveedor de perfiles mejorada, como este proveedor de perfiles de tabla , que almacena los campos de perfil como se esperaría en lugar de como memoria. acaparamiento de la gota. De forma alternativa, puede hacer rodar fácilmente su propio proveedor de perfiles, consulte las instrucciones aquí .
Ciertamente hay alternativas de membresía .NET, pero la mayoría tiene errores o tiene un pequeño conjunto de características. Realmente apesta desarrollarse encima de uno durante dos meses y luego darse cuenta de que no es compatible con todas las funciones que necesita. La membresía .NET es una solución probada y es por eso que se usa tan a menudo.
La membresía de ASP.Net usa un modelo de proveedor. Eso significa que es completamente libre de implementar su propio proveedor de membresía, o incluso heredar y extender un proveedor existente, siempre y cuando cumpla con el contrato del proveedor .
Sin embargo, uno más para preguntar sobre las alternativas existentes en lugar de tratar de construir algo nuevo.
Voy a seguir adelante y enumerar mi alternativa aquí. He puesto en marcha mi propia biblioteca de autenticación, y creo que es lo suficientemente impresionante como para ser lanzado públicamente ... Así que lo hice. Está diseñado para mantenerse fuera de tu camino y, en general, es bastante minimalista. No proporciono muchos controles de usuario listos para usar, pero en la mayoría de los sitios web he visto que esos controles de usuario integrados nunca se usan. Así que, en lugar de tratar de hacer controles de usuario aún más flexibles, decidí en cambio simplificar el cerebro para crear sus propios controles de inicio de sesión y demás.
El proyecto se llama Autenticación rápida, segura y concisa, o FSCAuth, para abreviar. Tiene licencia BSD. Puede descargarlo en Binpress o en Bitbucket
El modelo flexible "UserStore" (el equivalente del proveedor del formulario) le permite formar su base de datos de la forma que desee. Puede admitir archivos de texto sin formato, XML, MongoDB , Sql Server y en cualquier lugar intermedio.
Aquí hay una lista de cosas en las que creo que sobresale particularmente sobre la autenticación de formularios:
- Sistema de autenticación sin estado. No hay ningún requisito para realizar un seguimiento de las sesiones de usuario en la base de datos o en la memoria. Esto hace que sea trivial escalar a múltiples servidores que requieren pocos cambios (si los hay) en su código de autenticación
- Utilice cualquier cosa como una identificación única para cada usuario. Eso es correcto, no más GUIDs! Todo lo que cabe en una cadena es un juego justo
- Autenticación básica HTTP incorporada. Puede habilitar la autenticación básica solo en las páginas que desee (o globalmente) y puede hacer las mismas llamadas como si estuvieran usando la autenticación típica basada en cookies.
- Difícil de hacer inseguro. Debido a cómo funciona y le dejo al usuario final la menor cantidad posible de código central para realizar la autenticación, es extremadamente seguro y seguirá siendo así a menos que realmente intente romperlo. Yo manejo cookies, HTTP Basic Auth, y todo hash. Solo le das a FSCAuth una base de datos para ponerla.
- El soporte de BCrypt para hashes es trivial. Cómo hacerlo. . En la autenticación de formularios casi no es posible
- Me gusta :)
Por supuesto que también falta, y para ser justos, incluiré algunas cosas que faltan
- Autenticar archivos estáticos en IIS 6 no es posible (todavía)
- No hay prevención de fuerza bruta (todavía). Esto significa que deberá asegurarse de que la misma persona no intente acceder a su página de inicio de sesión 200 veces en 2 segundos.
- No está integrado en ASP.Net
- Sin autenticación de Windows o Passport (sin planes de agregar nunca)