Consulte este breve artículo de Fabio Costa sobre cómo usar SimpleMembership y OAuth con mySQL y bigint o cualquier base de datos y tipo de datos que desee: http://fabiocosta.ca/2012/11/24/use-simplemembership-and-oauth-with-any-database-and-datatype/. debería resolver tu problema. Buena suerte.
También hice cambios en mi siguiente código:
referencias añaden a MySql.Data, MySql.Data.Entity y MySql.Web. Propiedad modificada 'Copiar local' en verdadero en cada referencia.
Se cambió la conexión de la línea y se agregó DbProviderFactory en web.config para habilitar las conexiones de MySql.
Se agregó la configuración de roleManager y memberShip en web.config.
web.config
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=localhost;Database=dbname;User ID=username;Password=password;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<system.data>
<DbProviderFactories>
<clear />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<system.web>
<roleManager enabled="true" defaultProvider="simple">
<providers>
<clear/>
<add name="simple" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="simple">
<providers>
<clear/>
<add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
</providers>
</membership>
</system.web>
- Creado _AppStart.cshtml en la raíz de inicializar la conexión db y autom. crear tablas en db al inicio de la aplicación.
_AppStart.cshtml
@{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
}
- filtro Añadido para asegurar la conexión db durante las solicitudes de autenticación. Esto es lo mismo que colocar manualmente el atributo InitializeSimpleMembership en cada controlador.
App_Start \ FilterConfig.cs
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new InitializeSimpleMembershipAttribute());
}
}
Esta es la respuesta que acabo de utilizar La aplicación de Kim funciona – Diin
Buen trabajo Kim. ¡Continúa con el buen trabajo! – ssanchezz23
@Kim Ki Won, he tratado de agregar las extensiones a mi proyecto con éxito limitado. El mayor problema es el contexto de la base de datos. Tienes un 'Perfil de usuario' clase en el proyecto MySql.Web.Extension que es muy similar a la clase parcial 'UserProfile' que viene con la plantilla MVC4. ¿Por qué? –