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中操作用户的方法
posted @ 2017-04-23 01:11  罗道义  阅读(483)  评论(0编辑  收藏  举报
本站总访问量