Solo como punto de referencia, podría ser una buena idea crear una nueva plantilla de aplicación de Internet de un proyecto de aplicación web ASP.NET MVC 4 (es decir, a través de Archivo> Nuevo proyecto).
Si observa el AccountController
, como dice @zms6445, está decorado con un InitializeSimpleMembership
atributo. Puede encontrar la implementación de este atributo en el archivo InitializeSimpleMembershipAttribute.cs en la carpeta Filters dentro del directorio raíz.
Aquí, esta es la parte que falta del rompecabezas:debe conectar su base de datos existente para que la use el SimpleMembershipProvider
. Este es el código que necesitas:
private class SimpleMembershipInitializer
{
public SimpleMembershipInitializer()
{
try
{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("CONNECTION_STRING_NAME", "USER_TABLE", "USER_ID_FIELD", "USER_NAME_FIELD", autoCreateTables: true);
}
}
catch (Exception ex)
{
throw new InvalidOperationException("Something is wrong", ex);
}
}
}
Algunas cosas a tener en cuenta:
-
CONNECTION_STRING_NAME
es una entrada en su web.config ConnectionStrings - NO PUEDE usar la cadena de conexión del modelo aquí - elSimpleMembershipProvider
no reconoce ese formato! Debe especificar unSystem.Data.SqlClient
cadena de conexión, p. -
USER_TABLE
es la tabla en su base de datos para contener información adicional del usuario, como nombre, apellido, etc. Esto está vinculado a las tablas generadas automáticamente a través de USER_ID_FIELD. -
USER_ID_FIELD
suele ser la clave principal de la tabla Usuarios. Debe ser de tipoint
. -
USER_ID_NAME
es un nombre único para el usuario, que podría ser una dirección de correo electrónico. -
autoCreateTables
se establece entrue
para garantizar que se creen las tablas requeridas para que SimpleMembership funcione si aún no existen.
Por supuesto, este código solo se activa si accede a una página a través de AccountController
, ya que este ha sido decorado por el atributo. Podría poner un punto de interrupción allí y verlo en acción.
Esto debería ayudarlo a comenzar:la plantilla de la aplicación de Internet es una plantilla bastante buena para seguir si se atasca.
Espero que esto ayude.