# 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中操作用户的方法

asp.net identity的学习记录的更多相关文章

  1. ASP.NET Identity & OWIN 学习资料

    有关 ASP.NET Identity 的更多细节: http://www.asp.net/identity 从一个空项目中添加 ASP.NET Identity 和 OWIN 支持: http:// ...

  2. ASP.Net Mvc 5 学习记录2015-9-9

    我之前一直都是学习和开发都采用ASP.Net WebForm,对MVC的一直都是一知半解,最初以为ASP.Net WebForm的N层架构就是MVC.其实N层架构设计思想是"高内聚,低耦合& ...

  3. asp.net报表结构学习记录

    当一份web报表项目压缩包躺在我的文件夹里时,我是完全懵的.作为一个学习了一个月java的asp.net小白,以前从来没有接触过这方面,我完全不知道从何入手. 手里也有asp.net开发学习视频,但都 ...

  4. asp.net Code CSRedis学习记录

    1.安装Redis for windows 安装地址 https://github.com/MicrosoftArchive/redis/releases Redis 是完全开源免费的,遵守BSD协议 ...

  5. ASP.NET Identity 系列笔记目录

    编写目的 混迹博客园已经有一段时间了,一直都是在学习各路大神的文章,自己却没有做出什么贡献,所以觉得应该写一点点内容和大家一起分享.但是本人实在才疏学浅,有心无力啊!正好最近在学习 Microsoft ...

  6. [ASP.NET MVC] ASP.NET Identity学习笔记 - 原始码下载、ID型别差异

    [ASP.NET MVC] ASP.NET Identity学习笔记 - 原始码下载.ID型别差异 原始码下载 ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.NET的验证.授 ...

  7. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  8. CQRS学习——集成ASP.NET Identity[其五]

    [其实和Cqrs没啥关系] 缘由 其实没啥原因,只是觉得以前写了不知多少遍的用户登录复用性太差,实现的功能也不多. 依赖的Nuget包 简单登陆 就简单登陆而言,只需要实现如下接口/抽象类: Stor ...

  9. 学习asp.net Identity 心得体会(连接oracle)

    asp.net Identity具体功能暂不在此细说,下面主要介绍几点连接oracle注意的事项, 1.首先下载连接oracle驱动Oracle.ManagedDataAccess.dll和Oracl ...

随机推荐

  1. C#转义字符(好记性不如烂笔头)

    C#转义字符: ·一种特殊的字符常量:·以反斜线"\"开头,后跟一个或几个字符.·具有特定的含义,不同于字符原有的意义,故称“转义”字符.·主要用来表示那些用一般字符不便于表示的控 ...

  2. 【Github教程】史上最全github使用方法:github入门到精通(转自eoeandroid.com)

    本文来源:http://www.eoeandroid.com/thread-274556-1-1.html 另附经典教程网址 :http://wuyuans.com/2012/05/github-si ...

  3. C#属性器Get和Set

    public sealed class classroom { private List<string> student = new List<string>(); priva ...

  4. 数字图像处理,图像锐化算法的C++实现

    http://blog.csdn.net/ebowtang/article/details/38961399 之前一段我们提到的算法都是和平滑有关, 经过平滑算法之后, 图像锐度降低, 降低到一定程度 ...

  5. CF335B

    /*CF335B 这个题目的n达到50000,但是串只是有小写字母组成,所以如果字符串的长度大于2600,那么 肯定存在,所开始输入就判断如果长度大于2600,那么直接找当个字母输出100个 否则执行 ...

  6. Linux关于yum命令Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.

    Linux关于yum命令Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx. 问题: Linux ...

  7. 20145219 《Java程序设计》第05周学习总结

    20145219 <Java程序设计>第05周学习总结 教材学习内容总结 try.catch 1.求平均数程序示例 import java.util.Scanner; public cla ...

  8. 《Language Implementation Patterns》之 语言翻译器

    语言翻译器可以从一种计算机语言翻译成另外一种语言,比如一种DSL的标量乘法axb翻译成java就变成a*b:如果DSL里面有矩阵运算,就需要翻译成for循环.翻译器需要完全理解输入语言的所有结构,并选 ...

  9. [C++] 2017联发科技杯编程挑战赛 复赛题 “杰克船长的烦恼”

    题目如下. 规则 杰克船长这次运气不错,抢到了一大堆金币.但他马上又开始发愁了, 因为如何给大家分金币,一直都是件不容易的事,每次杰克船长都要头疼好几天. 关于分金币,海盗的行规是这样的: 每次行动, ...

  10. bzoj 1623: [Usaco2008 Open]Cow Cars 奶牛飞车

    1623: [Usaco2008 Open]Cow Cars 奶牛飞车 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 325  Solved: 223[S ...