在ASP.NET Web 应用下基于 MySQL 使用 Identity 2

1.创建 ASP.NET Web APP

在ASP.NET Web 应用下基于 MySQL 使用 Identity 2_第1张图片
在ASP.NET Web 应用下基于 MySQL 使用 Identity 2_第2张图片

2.替换默认的数据库链接

Web.config 文件的 connectionStrings 配置节中替换默认的链接字符串为:

3.创建默认数据表

创建表的SQL脚本

更改数据表区分大小写
在[mysqld]节点下,加入一行: lower_case_table_names=1

在ASP.NET Web 应用下基于 MySQL 使用 Identity 2_第3张图片

4.删除默认的 Microsoft.AspNet.Identity.EntityFramework 包

使用命令行: Uninstall-Package Microsoft.AspNet.Identity.EntityFramework

直接使用安装界面点击删除

在ASP.NET Web 应用下基于 MySQL 使用 Identity 2_第4张图片

如有依赖包需要先删除,如 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
{
  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(context.Get()));
var manager = new ApplicationUserManager(new MySqlUserStore());

7.运行后功能可正常使用

项目代码见GitHub - Identity2MySql

参考

  1. ASP.NET Identity 2.1 implementation for MySQL
  2. Overview of Custom Storage Providers for ASP.NET Identity

你可能感兴趣的:(在ASP.NET Web 应用下基于 MySQL 使用 Identity 2)