2010-01-10 20 views
12

No estoy familiarizado con la membresía/roles de ASP.NET. Esta es la primera vez que lo uso, y la primera vez que intento ASP.NET MVC. Cuando creo mi primer proyecto para MVC, me da una plantilla preciosa para crear una cuenta. Estaba emocionado de ver que no tenía que hacer esto manualmente. Sin embargo, falló porque no se puede conectar a SQL Server. No tengo SQL Server, tengo MySQL. ¿Hay alguna manera fácil de lograr que este sistema use MySQL, o tendré que crear mi propia autenticación?Proveedores de Membresía/Rol de ASP.NET para MySQL?

Respuesta

19

¡Lo encontré! Al usar la versión 6.2.2.0 de MySql Connector/Net, siga estos pasos ...

  • Añadir referencia a MySql.Web.dll
  • Cambie su <membership> en web.config para esto:

    <membership defaultProvider="MySqlMembershipProvider"> 
        <providers> 
        <clear/> 
        <add name="MySqlMembershipProvider" 
         type="MySql.Web.Security.MySQLMembershipProvider, 
           MySql.Web, Version=6.2.2.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" 
         autogenerateschema="true" 
         connectionStringName="NAME_OF_YOUR_CONN_STRING" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="false" 
         passwordFormat="Hashed" 
         maxInvalidPasswordAttempts="5" 
         minRequiredPasswordLength="6" 
         minRequiredNonalphanumericCharacters="0" 
         passwordAttemptWindow="10" 
         passwordStrengthRegularExpression="" 
         applicationName="/" 
        /> 
        </providers> 
    </membership>
  • Run el Proyecto | herramienta de configuración de ASP.NET y haga clic en la ficha Seguridad para probar
  • probado en ASP.NET 3.5, MySQL Server versión 5.1, Windows XP de 64 bits
+0

Gracias. Esta fue una gran ayuda. ¡No se pierda la adición de defaultProvider! – Kildareflare

-1

Haga clic en el menú Proyecto seguido de la configuración de ASP.NET.

Eso creará la base de datos sql para usted en la carpeta de Datos.

Utilice Visual Studio para ver los datos.

Espero que esto ayude.

Editar

debo añadir que a continuación, puede utilizar las teclas Ctrl + Alt + S para ver el Explorador de servidores que debe entonces permitirá ver su base de datos con sus tablas y los datos.

No debe necesitar SQL instalado.

+0

Obtuve la herramienta para finalmente aparecer (es más lenta que la melaza), pero no veo ninguna base de datos. Fui a la pestaña de seguridad e intenté seleccionar un almacén de datos. Luego me da una lista de proveedores, pero solo uno está allí (AspNetSqlProvider), pero esto me da el mismo error (no puedo conectarme al servidor SQL). –

+0

En Visual Studio, ¿ahora puede ver el archivo aspnetdb.mdf? Debería estar en la carpeta App_Data. Asegúrese de mostrar todos los archivos. – griegs

+1

No. MDF = SQL Server. Yo * no * tengo SQL Server. –

2

La pregunta original no especificaba qué versión de ASP.NET & MVC se utilizó. Con el reciente lanzamiento de .NET 4.5 y MVC 4, tuve el mismo problema que el OP pero con las nuevas tecnologías. Este es mi quick fix for it principalmente la misma configuración que la respuesta de Josh Stodola pero con algunos pasos adicionales.

<membership defaultProvider="MySqlMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="MySqlMembershipProvider" 
     type="MySql.Web.Security.MySQLMembershipProvider, 
     MySql.Web, Version=6.5.4.0, PublicKeyToken=c5687fc88969c44d" 
    autogenerateschema="true" 
    connectionStringName="*NAME_OF_YOUR_CONN_STRING*" 
    enablePasswordRetrieval="false" 
    enablePasswordReset="true" 
    requiresQuestionAndAnswer="false" 
    requiresUniqueEmail="false" 
    passwordFormat="Hashed" 
    maxInvalidPasswordAttempts="5" 
    minRequiredPasswordLength="6" 
    minRequiredNonalphanumericCharacters="0" 
    passwordAttemptWindow="10" 
    passwordStrengthRegularExpression="" 
    applicationName="/" /> 
    </providers> 
</membership> 

Obtener el AccountController y Vistas de trabajo:

  1. Eliminar la AccountController MVC 4, AccountModels, vista Cuenta carpeta y _LoginPartial comparte la opinión
  2. Crear una nueva aplicación web MVC 3
  3. Copiar el MVC 3 AccountController, AccountModels, carpeta de vista de cuenta y vista compartida _LogOnPartial en su aplicación MVC 4
  4. Reemplazar @Html.Partial(“_LoginPartial”) en la vista _Layout compartida con @Html.Partial(“_LogOnPartial”)
0

En mi caso, no necesito conectarme a MySQL desde mis aplicaciones web .NET.Por lo tanto, resolví este problema haciendo dos cosas:

1) Desinstalar MySQL .NET Connector (todas las versiones) 2) Dentro del archivo Web.Config, elimine todas las claves que se agregaron después de la instalación de MySQL. (O bien, copia el archivo web.config original antes de la instalación a la carpeta raíz de la aplicación Web .NET)

Ahora, mi aplicación .NET es bac

Cuestiones relacionadas