[Solution] ASP.NET Identity(1) 快速入门
2015-08-14 16:13
537 查看
本节将介绍:
ASP.NETIdentity简介
快速入门
扩展
ASP.NETIdentity简介
身份管理在ASP.NET中存在很长世间了,ASP.NET开发团队已经学会了很多从客户的反馈。
用户越来越不喜欢在每个网站都单独注册一个账号,用户希望通过社交平台的账号,开发人员也希望如此。
随着web的开发,单元测试页越来越重要。在2008年,Aspnet添加了MVC,部分原因是为了帮助开发人员构建单元测试。开发人员希望身份管理也可以单元测试。
ASP.NETIdentity遵循以下几点:
1.一个身份系统。
可以用在ASP.NET所有框架下,例如ASP.NETMVC,WebForms,WebPages,WebAPI以及SignalR。
2.配置用户数据
可以控制用户的配置信息。例如,启用系统来存储程序中注册账号的用户输入的出生日期。
3.数据库
默认情况下,ASP.NETIdentity将存储所有用户数据,通过EFCodeFirst来改善持久性机制。这样就能轻松的跨数据库,如SharePoint,AzureStorage,NoSQLdatabases。
4.单元测试
ASP.NETIdentity可以使你的web程序有更多的单元测试。
5.提供角色功能
有一个roleprovider方便你轻松的创建角色,如“Admin”和向角色添加用户。
6.基于声明
ASP.NETIdentity支持基于声明的身份验证,其中用户的身份作为一组声明,声明允许开发者描述用户的身份,角色至少应该bool值(会员或非会员),声明可以包含大量的用户信息和会员信息。
7.社交账号
可以非常方便的将社交插件集成进来。如微软账号,Facebook等,和在你的程序中存储特定的用户数据。
8.活动目录
9.OWIN
现在,ASP.NETIdentity基于OWIN中间件,可以在任何基于OWIN的主机上使用。不依赖于System.Web程序集。
ASP.NETIdentity用OWINAuthentication用来登入登出。使用CookieAuthentication来操作。
10.Nuget
通过Nuget来管理ASP.NETIdentity,这样bug修复,更新更快。
快速入门
在本例中,我们会说明项目模板如何使用ASP.NET身份来添加功能来注册、登录和注销用户。
1.创建MVC程序with个人身份
2.创建的项目中会有3个程序用于ASP.NETIdentity.
ASP.NETIdentity使用EFCodeFirst持久化技术
ASP.NETIdentity核心接口.这个程序集实现了不同的存储库存储AzureTableStorage,NoSQLdatabases等等.
通过OWINCookieAuthenticationmiddlewar管理Cookie来管理登入登出。
3.创建用户
运行项目,点击注册链接,注册用户。当填完注册信息后,点击注册按钮时。会执行以下Action。
红色区域用来创建用户,粉色区域用来登录用户。以下为登录用户方法。
红色区域创建一个身份声明,声明包括用户所有声明信息,包括用户角色。你可以自定义声明内容。
粉色区域通过OWIN登录系统。(生成Cookie)
4.登出
点击登出按钮,会触发以下Action
红色区域通过OWIN的FormsAuthentication登出系统。
扩展
1.ASP.NETIdentity组件
2.表结构
使用ASP.NETIdentity,会自动生成以下几张表。
代码下载:点击下载
本文作者:Never、C
本文链接:http://www.cnblogs.com/neverc/p/4727024.html
Identity:https://github.com/aspnet/Identity
ASP.NETIdentity简介
身份管理在ASP.NET中存在很长世间了,ASP.NET开发团队已经学会了很多从客户的反馈。
用户越来越不喜欢在每个网站都单独注册一个账号,用户希望通过社交平台的账号,开发人员也希望如此。
随着web的开发,单元测试页越来越重要。在2008年,Aspnet添加了MVC,部分原因是为了帮助开发人员构建单元测试。开发人员希望身份管理也可以单元测试。
ASP.NETIdentity遵循以下几点:
1.一个身份系统。
可以用在ASP.NET所有框架下,例如ASP.NETMVC,WebForms,WebPages,WebAPI以及SignalR。
2.配置用户数据
可以控制用户的配置信息。例如,启用系统来存储程序中注册账号的用户输入的出生日期。
3.数据库
默认情况下,ASP.NETIdentity将存储所有用户数据,通过EFCodeFirst来改善持久性机制。这样就能轻松的跨数据库,如SharePoint,AzureStorage,NoSQLdatabases。
4.单元测试
ASP.NETIdentity可以使你的web程序有更多的单元测试。
5.提供角色功能
有一个roleprovider方便你轻松的创建角色,如“Admin”和向角色添加用户。
6.基于声明
ASP.NETIdentity支持基于声明的身份验证,其中用户的身份作为一组声明,声明允许开发者描述用户的身份,角色至少应该bool值(会员或非会员),声明可以包含大量的用户信息和会员信息。
7.社交账号
可以非常方便的将社交插件集成进来。如微软账号,Facebook等,和在你的程序中存储特定的用户数据。
8.活动目录
9.OWIN
现在,ASP.NETIdentity基于OWIN中间件,可以在任何基于OWIN的主机上使用。不依赖于System.Web程序集。
ASP.NETIdentity用OWINAuthentication用来登入登出。使用CookieAuthentication来操作。
10.Nuget
通过Nuget来管理ASP.NETIdentity,这样bug修复,更新更快。
快速入门
在本例中,我们会说明项目模板如何使用ASP.NET身份来添加功能来注册、登录和注销用户。
1.创建MVC程序with个人身份
2.创建的项目中会有3个程序用于ASP.NETIdentity.
Microsoft.AspNet.Identity.EntityFramework
ASP.NETIdentity使用EFCodeFirst持久化技术
Microsoft.AspNet.Identity.Core
ASP.NETIdentity核心接口.这个程序集实现了不同的存储库存储AzureTableStorage,NoSQLdatabases等等.
Microsoft.AspNet.Identity.OWIN
通过OWINCookieAuthenticationmiddlewar管理Cookie来管理登入登出。
3.创建用户
运行项目,点击注册链接,注册用户。当填完注册信息后,点击注册按钮时。会执行以下Action。
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
publicasyncTask<ActionResult>Register(RegisterViewModelmodel)
{
if(ModelState.IsValid)
{
varuser=newApplicationUser(){UserName=model.UserName};
varresult=awaitUserManager.CreateAsync(user,model.Password);
if(result.Succeeded)
{
awaitSignInAsync(user,isPersistent:false);
returnRedirectToAction("Index","Home");
}
else
{
AddErrors(result);
}
}
//如果我们进行到这一步时某个地方出错,则重新显示表单
returnView(model);
}
红色区域用来创建用户,粉色区域用来登录用户。以下为登录用户方法。
privateasyncTaskSignInAsync(ApplicationUseruser,boolisPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
varidentity=awaitUserManager.CreateIdentityAsync(user,DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(newAuthenticationProperties(){IsPersistent=isPersistent},identity);
}
红色区域创建一个身份声明,声明包括用户所有声明信息,包括用户角色。你可以自定义声明内容。
粉色区域通过OWIN登录系统。(生成Cookie)
4.登出
点击登出按钮,会触发以下Action
[HttpPost]
[ValidateAntiForgeryToken]
publicActionResultLogOff()
{
AuthenticationManager.SignOut();
returnRedirectToAction("Index","Home");
}
红色区域通过OWIN的FormsAuthentication登出系统。
扩展
1.ASP.NETIdentity组件
2.表结构
使用ASP.NETIdentity,会自动生成以下几张表。
代码下载:
本文作者:Never、C
本文链接:http://www.cnblogs.com/neverc/p/4727024.html
Identity:https://github.com/aspnet/Identity
相关文章推荐
- ASP.net MVC3里的HandleErrorAttribute
- 为Raspberry Pi 2编译内核模块
- ASP.NET 操作XML文件,超簡單的方法
- asp.net mvc Area使用
- Spring AOP与AspectJ 面向切面编程配置与注解
- 以色列Aladdin HASP SRM(AES-128)加密狗破解经验分享
- asp.net中的reportview报错跟预编有关系
- 搭建第一个web项目:jasperReports+ireport制作pdf报表
- Asp.Mvc 2.0用户服务器验证实例讲解(4)
- ASP.NET验证控件应用实例与详解。
- ASP.NET用户注册实战(第11节)
- Asp.net页面间传值的四种方式
- ASP.NET实现数据的添加(第10节)
- DevExpress v15.1:ASP.NET MVC功能升级(二)
- asp.net的Request.ServerVariables参数说明
- Raspberry PI上安装OpenWRT
- ASP.NET之GridView常用方法总结
- asp.net代码中尖括号和百分号的用法
- ASP.NET实现数据的添加(第10节)
- Asp.Mvc 2.0用户服务器验证实例讲解(4)