5

Soy nuevo en ASP.NET y recién estoy empezando a aprender ASP.NET MVC 3. Comencé un nuevo proyecto ASP.NET MVC 3 usando la plantilla predeterminada, que ya tiene la mayoría de los elementos de membresía ya configurados. Ahora estoy tratando de entender lo que realmente está sucediendo detrás de escena.¿De dónde vino aspnetdb.mdf en mi aplicación ASP.NET MVC?

He encontrado que la plantilla predeterminada define una interfaz IMembershipService implementada por la clase AccountMembershipService que, básicamente, simplemente ajusta un System.Web.Security.MembershipProvider. De los comentarios en el código se desprende que esta abstracción se realiza para facilitar las pruebas unitarias.

El MembershipProvider predeterminado se establece en el archivo Web.config. Mi proyecto, que se creó a partir de la plantilla predeterminada, está configurado en SqlMembershipProvider.

<membership> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
     applicationName="/" /> 
    </providers> 
</membership> 

Esto hace referencia a una cadena de conexión en el archivo Web.config, que hace referencia a una base de datos SQL Express "aspnetdb.mdf".

<connectionStrings> 
    <add name="ApplicationServices" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

Cuando creé por primera vez mi proyecto, no había ningún archivo aspnet.mdf. Pero después de ejecutar mi aplicación y registrar un nuevo usuario, este archivo se generó automáticamente con tablas y todo. ¿Que está pasando aqui? ¿Qué crea este archivo y especificó las tablas que deberían crearse?

Respuesta

2

Estos son creados por la clase SqlMembershipProvider. Si lo desea, puede personalizar su archivo de configuración para usar un proveedor de membresía diferente o decirle qué base de datos existente debe usar.

Utilice esta herramienta para agregar las tablas adecuadas, etc. a su instalación existente de SQL Server: http://msdn.microsoft.com/en-us/library/ms229862(v=VS.100).aspx

Cuestiones relacionadas