在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

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

参考

  1. ASP.NET Identity 2.1 implementation for MySQL
  2. Overview of Custom Storage Providers for ASP.NET Identity
上一篇下一篇

猜你喜欢

热点阅读