asp.net identity的学习记录
# 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的学习记录的更多相关文章
- ASP.NET Identity & OWIN 学习资料
有关 ASP.NET Identity 的更多细节: http://www.asp.net/identity 从一个空项目中添加 ASP.NET Identity 和 OWIN 支持: http:// ...
- ASP.Net Mvc 5 学习记录2015-9-9
我之前一直都是学习和开发都采用ASP.Net WebForm,对MVC的一直都是一知半解,最初以为ASP.Net WebForm的N层架构就是MVC.其实N层架构设计思想是"高内聚,低耦合& ...
- asp.net报表结构学习记录
当一份web报表项目压缩包躺在我的文件夹里时,我是完全懵的.作为一个学习了一个月java的asp.net小白,以前从来没有接触过这方面,我完全不知道从何入手. 手里也有asp.net开发学习视频,但都 ...
- asp.net Code CSRedis学习记录
1.安装Redis for windows 安装地址 https://github.com/MicrosoftArchive/redis/releases Redis 是完全开源免费的,遵守BSD协议 ...
- ASP.NET Identity 系列笔记目录
编写目的 混迹博客园已经有一段时间了,一直都是在学习各路大神的文章,自己却没有做出什么贡献,所以觉得应该写一点点内容和大家一起分享.但是本人实在才疏学浅,有心无力啊!正好最近在学习 Microsoft ...
- [ASP.NET MVC] ASP.NET Identity学习笔记 - 原始码下载、ID型别差异
[ASP.NET MVC] ASP.NET Identity学习笔记 - 原始码下载.ID型别差异 原始码下载 ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.NET的验证.授 ...
- ASP.NETCore学习记录(一)
ASP.NETCore学习记录(一) asp.net core介绍 Startup.cs ConfigureServices Configure 0. ASP.NETCore 介绍 ASP.N ...
- CQRS学习——集成ASP.NET Identity[其五]
[其实和Cqrs没啥关系] 缘由 其实没啥原因,只是觉得以前写了不知多少遍的用户登录复用性太差,实现的功能也不多. 依赖的Nuget包 简单登陆 就简单登陆而言,只需要实现如下接口/抽象类: Stor ...
- 学习asp.net Identity 心得体会(连接oracle)
asp.net Identity具体功能暂不在此细说,下面主要介绍几点连接oracle注意的事项, 1.首先下载连接oracle驱动Oracle.ManagedDataAccess.dll和Oracl ...
随机推荐
- LVS基本介绍
一.LVS概念 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器.这是一个由章文嵩博士发起的一个开源项目,它的官方网站是http://www.linuxvirtual ...
- 单元测试JUnit 4
介绍 JUnit 4.x 是利用了 Java 5 的特性(Annotation)的优势,使得测试比起 3.x 版本更加的方便简单,JUnit 4.x 不是旧版本的简单升级,它是一个全新的框架,整个 ...
- netty2---服务端和客户端
客户端: package com.client; import java.net.InetSocketAddress; import java.util.Scanner; import java.ut ...
- 【HTML5校企公益课】第四天
1.上午考试没去.. 2.下午跟不上.. 变色.html <!DOCTYPE html> <html> <head> <meta charset=" ...
- PHP7的五大新特性
如果你使用的是基于 composer 和 PSR-4 的框架,这种写法是否能成功的加载类文件?其实是可以的,composer 注册的自动加载方法是在类被调用的时候根据类的命名空间去查找位置,这种写法对 ...
- IDEA 编译时 未结束的字符串文字
这个问题就是编码的问题,修改文件的编码可以解决 1. IDEA中 file-->Settings 找到File Encodings,将IDE Encoding.Project Encodin ...
- ==和equals在比较字符串时候的区别
作为一个菜鸟 之前一直迷茫 都说比较字符串要用equals()方法 但是有时候用==貌似也可以 话不多说 先来一个例子 public static void main(String[] arg ...
- Buildbot初探
什么是Buildbot Buildbot是一个持续集成和自动化测试框架,我在毕业刚进VMware不久的一个和以色列人合作的项目中接触到Buildbot,当时我真的恨死它了...经常随意的提交了一些代码 ...
- lastIndexOf 方法 (Array) (JavaScript)
lastIndexOf 方法 (Array) (JavaScript) 返回指定的值在数组中的最后一个匹配项的索引. 语法 array1.lastIndexOf(searchEleme ...
- Mac Item2 SSH免密登录Linux 服务器的两种方式
转自http://blog.csdn.net/jobschen/article/details/52823980 mac ssh登录linux服务器 的两种方式: 个人推荐第二种,zsh方式,只需要把 ...