tutorial net mvc framework asp asp.net asp.net-mvc asp.net-mvc-3 asp.net-membership asp.net-mvc-4

framework - Migración de membresía ASP.NET a SimpleMembership en MVC4 RTM



identity framework c# (3)

Me gustaría dar a conocer el comentario de Paul por si alguien lo echa de menos y sugerir que su solución es la mejor que he visto.

pretzelsteelersfan.blogspot.com/2012/11/…

Gracias Paul

Las nuevas plantillas de aplicaciones de Internet MVC4 RTM usan los proveedores de SimpleMembership como se describe aquí SimpleMembership

Mi sitio web de MVC existente utiliza el marco de Membresía de ASP e, idealmente, me gustaría migrar los datos de usuario en estas tablas a las nuevas tablas de SimpleMembership. Mis razones para querer hacer esto son:

  1. Integración más limpia con el resto de mi base de datos que usa EF
  2. Soporte para Azure y OAuth fuera de la caja
  3. Utilice los Controles / Vistas MVC4 RTM más recientes sin necesidad de modificar
  4. Siempre sentí que la implementación de membresía existente estaba un poco hinchada por lo que necesitaba

Así que hoy escribí un script SQL para migrar los datos en las tablas de Membresía ASP.Net existentes a las nuevas tablas de Membresía Simple. Esto se puede encontrar here

Probando el inicio de sesión en mi sitio web MVC 4, la verificación de la contraseña está fallando. Creo que SimpleMembership utiliza una contraseña diferente algo más que el antiguo marco de Membresía, ya que las nuevas contraseñas creadas en el marco SimpleMemberShip se ven mucho más tiempo.

Así que mi pregunta es porque estaba usando el formato de contraseña "hash" en los antiguos proveedores de membresía de ASP.Net y la contraseña original de los usuarios es irrecuperable, ¿qué opciones tengo para conseguir que funcione el proveedor de SimpleMembership?

Supongo que algunas opciones son:

  1. Haga que mis usuarios restablezcan sus contraseñas
  2. Hacer que el proveedor de SimpleMembership use el mismo algoritmo de contraseñas que los antiguos proveedores de Membresía de ASP.Net.
  3. Revertir las nuevas plantillas de aplicaciones de Internet MVC 4 RTM para usar los antiguos proveedores de MemberShip de ASP.Net. Esta es la opción menos deseable para mí, ya que me gustaría usar el framework SimpleMemberShip.

Sospecho que muchas personas también están buscando migrar sus bases de datos de membresía existentes al nuevo proveedor de SimpleMemberShip.

Cualquier ayuda muy apreciada.

Aclamaciones

Jim


Tiene acceso a la contraseña de texto sin formato cuando el usuario inicia sesión, lo que le da otra opción:

  1. Mantenga las contraseñas antiguas en una tabla separada
  2. Al iniciar sesión, primero use el método SimpleMembership
  3. Si eso falla, verifique con la vieja tabla de contraseñas usando el viejo algoritmo hash (deberá asegurarse de que la contraseña de texto plano aún se encuentre en el contexto)
  4. Si eso tiene éxito, actualice las tablas de SimpleMembership y elimine de la tabla de contraseñas antiguas

Los usuarios no necesitarían saber sobre el cambio, y los usuarios activos tendrían un hash más seguro. Si desea forzar la actualización de seguridad en el futuro, puede advertir a los usuarios que sus cuentas se eliminarán luego de un año de inactividad, y simplemente retire el sistema de dos pasos.


Tuve un problema similar, debería haber escrito una publicación de tutorial / blog sobre cómo hacer esto, pero mi solución fue agregar lo siguiente a mi web.config (esto corresponde a la opción # 2):

<system.web> <membership hashAlgorithmType="SHA1" defaultProvider="DefaultMembershipProvider"> <providers> <add name="DefaultMembershipProvider" etc.../> </providers> </membership> <machineKey validation="SHA1" /> ... </system.web>

La parte interesante del código anterior es el "hashAlgorithmType". Al establecer eso en SHA1, se usará el antiguo algoritmo de hashing de membresías de asp.net.

También estoy en una posición similar. Debo pedirles a mis usuarios que actualicen sus contraseñas o que sigan con el algoritmo hash específico.

¡Espero que esto ayude! -Sig