# identity数据库
## 创建空数据库 交给ef管理
### 添加asp.net identity包
```
Install-Package Microsoft.AspNet.Identity.EntityFramework
Install-Package Microsoft.AspNet.Identity.OWIN
Install-Package Microsoft.Owin.Host.SystemWeb
```
## 创建owin startup类
在app_start目录创建新类 IdentityConfig
## 在web.config中添加配置信息
数据库连接字符串。。。。
---------------------------
## owin配置信息
```
```
## 创建User类 => 代表用户
继承自
`Microsoft.AspNet.Identity.EntityFramework`命名空间下的`IdentityUser`
`IdentityUser`提供了基本的用户信息,如`email passwordhash Username phonenumber roles`等
我们也可以在其派生类中添加额外的信息
```
class AppUser:IdentitUser
```
## 创建Database Context类 =>使用ef code first开管理数据库
ASP.Net Identity将使用Code First来创建和管理数据库架构
Database Context必须继承自IdentityDbContext
,而且T为User类(或者其派生来 这里为AppUser)
```
class AppIdentityDbContext:IdentityDbContext
{
public AppIdentityDbContext()
:base("连接字符串key")
{
}
//静态函数只执行一次,这里使用下面创建的初始化类来初始化数据库
static AppIdentityDbContext()
{
Database.SetInitializer(new IdentityDbInit()):
}
//创建Database Context实例 每次调用返回一个实例
public static AppIdentityDbContext Create()
{
return new AppOdentityDbContext();
}
}
```
### 同时可以创建数据库初始化类 这里命名为IdentityDbInit (继承自DropCreateDatabaseIfModelChanges这里的泛型T指的是需要初始化的DbContext)
```
class IdentityDbInit:DropCreateDatabaseIfModelChanges
{
protected override void Seed(AppIdentityDbContext context)
{
PerformInitialSetup(context)
base.Seed(context)
}
private void PerformInitialSetup(AppIdentityDbContext context)
{
//进行初始化操作
}
}
```
## 创建User Manger类
User Manager类作为ASP.NET Identity中最为重要的类之一,用来管理User,它提供了创建和操作用户的一些基本方法,并且全面支持C#异步编程,
值得注意的是,它并不通过Entity Framework来直接操作用户,而是间接的调用UserStore来实现。
UserStore 是Entity Framework类实现了IUserStore接口并且实现了定义在UserManger中操作用户的方法
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有