是否可以使用Simple Membership Provider与mysql(同时使用Entity Framework)?
如果可以,如何实现。
非常感谢任何文档/链接。
提前致谢。
是否可以使用Simple Membership Provider与mysql(同时使用Entity Framework)?
如果可以,如何实现。
非常感谢任何文档/链接。
提前致谢。
添加了对MySql.Data,MySql.Data.Entity和MySql.Web的引用。 在每个引用上修改属性“Copy Local”为true。
更改了连接字符串,并在web.config中添加了DbProviderFactory以启用MySql连接。
在web.config中添加了roleManager和memberShip配置。
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>
_AppStart.cshtml
@{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
}
App_Start\FilterConfig.cs
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new InitializeSimpleMembershipAttribute());
}
}
SimpleMembershipProvider
最终只是一个基于我们所熟知和讨厌的 MembershipProvider
的派生类。MembershipProvider
工作。因此,这是一个非常简化的 MembershipProvider
实现。你需要回到重写实现这些函数与 SimpleMembershipProvider
。MembershipProvider
类中。我正在使用LLBLGen进行操作(适用于MySql、Oracle、Firebird、DB2等):在MVC4中使用LLBLGen为MySql、Oracle等创建SimpleMembershipProvider。
您可以按照本文所述的方式创建自己的ExtendedMembershipProvider实现,使用任何您想要的DAL策略。如果您想使用Entity Framework,则需要使用支持Entity Framework的MySql提供程序编写您的提供程序实现(请参见:DevArt的MySql Entity Framework教程)。
是的,只需访问https://github.com/xyz37/MySqlSimpleMembershipProvider
下载示例应用程序并根据需要进行修改。它开箱即用,非常好用。第一次创建用户并设置适当的权限后,如果遇到无法创建数据库的错误,请刷新浏览器一两次,它就能够创建数据库了。
UserProfile
的类,它与MVC4模板中提供的部分类UserProfile
非常相似。这是为什么? - William T. Mallard