在ASP.NET Web 应用下基于 MySQL 使用 Iden
2018-01-01 本文已影响203人
显卡84du
1.创建 ASP.NET Web APP
2.替换默认的数据库链接
在 Web.config
文件的 connectionStrings 配置节中替换默认的链接字符串为:
<add name="DefaultConnection" connectionString="Server=localhost;Port=13306;Database=databasename;User id=uid;Password=somepass;" providerName="MySql.Data.MySqlClient" />
3.创建默认数据表
创建表的SQL脚本
更改数据表区分大小写
在[mysqld]节点下,加入一行:lower_case_table_names=1
4.删除默认的 Microsoft.AspNet.Identity.EntityFramework 包
使用命令行: Uninstall-Package Microsoft.AspNet.Identity.EntityFramework
或
直接使用安装界面点击删除
如有依赖包需要先删除,如 Microsoft.AspNet.Identity.EntityFramework.zh-Hans
5.安装 MySql.AspNet.Identity 包
命令行: Install-Package MySql.AspNet.Identity -Version 2.1.1
Dependencies
- Microsoft.AspNet.Identity.Core (>= 2.1.0)
- MySql.Data(>= 6.9.5 && < 7.0.0)
6.替换代码
1.替换引用包
在 ~/Models/IdentityModels.cs
(以及其他引用到这两个包的)文件中删除以下两个引用
using System.Data.Entity;
using Microsoft.AspNet.Identity.EntityFramework;
替换为
using MySql.AspNet.Identity;
2.删除不必要代码
在 ~/Models/IdentityModels.cs
中删除这个类
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
在 ~/App_Start/Startup.Auth.cs
中删除这行代码
app.CreatePerOwinContext(ApplicationDbContext.Create);
3.删除引用替换代码
在 ~/App_Start/IdentityConfig.cs
文件中删除以下引用
using System.Data.Entity;
using Microsoft.AspNet.Identity.EntityFramework;
添加以下引用
using MySql.AspNet.Identity;
替换代码
// 替换掉被注释的这行代码
// var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
var manager = new ApplicationUserManager(new MySqlUserStore<ApplicationUser>());
7.运行后功能可正常使用
项目代码见GitHub - Identity2MySql