identity一些接口
ASP.NET平台通过HttpContext对象提供一些关于用户的有用信息,该对象由Authorize注解属性使用 的,以检查当前请求的状态,考察用户是否已被认证。HttpContext.User属性返回的是IPrincipal 接口的实现,该接口是在System.Security.Principal命名空间中定义的。
IPrincipal接口:
ASP.NET平台通过HttpContext对象提供一些关于用户的有用信息,该对象由Authorize注解属性使用 的,以检查当前请求的状态,考察用户是否已被认证。HttpContext.User属性返回的是IPrincipal 接口的实现,该接口是在System.Security.Principal命名空间中定义的。IPrincipal接口定义了 如下表所示的属性和方法:
名称 | 描述 |
Identity | 返回IIdentity接口的实现,它描述了与请求相关联的用户 |
IsInRole(role) | 如果用户是指定角色的成员,则返回true |
IIdentity接口:
IPrincipal.Identity属性返回的IIdentity接口实现通过一些属性提供了有关当前用户的一些基本却有用的信息,下表描述了这些属性:
名称 | 描述 |
AuthenticationType | 返回一个字符串,描述了用于认证用户的机制 |
IsAuthenticated | 如果用户已被认证,返回true。 |
Name | 返回当前用户的用户名 |
ASP.NET Identity含有一个处理AuthenticateRequest生命周期事件(第3章曾做过描述)的模块,并使 用浏览器发送过来的Cookie确认用户是否已被认证。 Identity用于IIdentity接口的实现类,其名称为ClaimsIdentity。
如果用户已被 认证,此ASP.NET框架模块便会将IIdentity.IsAuthenticated属性的值设置为true,否则设置为 false。(此刻尚未实现让用户进行认证的特性,这意味着在本示例应用程序中,IsAuthenticated 属性的值总是false。)
PasswordValidator类:
一个最常用的需求,特别是对于公司的应用程序,是强制口令策略。ASP.NET Identity提供了一个 PasswordValidator类,可以用下表所描述的属性来配置口令策略:
名称 | 描述 |
RequiredLength | 指定合法口令的最小长度 |
RequireNonLetterOrDigit | 当设置为true时,合法口令必须含有非字母和数字的字符 |
RequireDigit | 当设置为true时,合法口令必须含有数字 |
RequireLowercase | 当设置为true时,合法口令必须含有小写字母 |
RequireUppercase | 当设置为true时,合法口令必须含有大写字母 |
定义口令策略的办法是,创建一个PasswordValidator类实例、设置其属性的值,并在OWIN用来实例化UserManager类的Create方法中将该对象作为PasswordValidator属性的值。
还可以执行更一般的验证,办法是创建UserValidator类的实例,并使用它所定义的属性,以限制用 户其他属性的值。下表描述了UserValidator的属性:
名称 | 描述 |
AllowOnlyAlphanumericUserNames | 当为true时,用户名只能含有字母数字字符 |
RequireUniqueEmail | 当为true时,邮件地址必须唯一 |
对用户细节执行验证的做法是创建UserValidator类实例,并在OWIN用来创建实例的Create方法中, 将它赋给用户管理器类的UserValidator属性。
IdentityResult接口:
CreateAsync方法的结果是一个IdentityResult接口的实现,它通过下表的属性描述操作的输出。
名称 | 描述 |
Errors | 返回一个字符串枚举,其中列出了尝试操作期间所遇到的错误。 |
Succeeded | 在操作成功时返回true |
identity一些接口的更多相关文章
- 从Membership 到 .NET4.5 之 ASP.NET Identity
我们前面已经讨论过了如何在一个网站中集成最基本的Membership功能,然后深入学习了Membership的架构设计.正所谓从实践从来,到实践从去,在我们把Membership的结构吃透之后,我们要 ...
- 向空项目添加 ASP.NET Identity
安装 AspNet.Identity 程序包 Microsoft.AspNet.Identity.Core 包含 ASP.NET Identity 核心接口Microsoft.AspNet.Ident ...
- [转]Membership 到 .NET4.5 之 ASP.NET Identity
本文转自:http://www.cnblogs.com/jesse2013/p/membership-part3.html 我们前面已经讨论过了如何在一个网站中集成最基本的Membership功能,然 ...
- [Solution] ASP.NET Identity(1) 快速入门
本节将介绍: ASP.NET Identity简介 快速入门 扩展 ASP.NET Identity简介 身份管理在ASP.NET中存在很长世间了,ASP.NET 开发团队已经学会了很多从客户的反馈. ...
- (转)从Membership 到 .NET4.5 之 ASP.NET Identity
引入 - 用户信息是如何存在数据库中的 我们前两篇都只讲到了怎么用Membership注册,登录等,但是我们漏掉了一个很重要并且是基本上每个用Membership的人都想问的,我的用户信息怎么保存?我 ...
- Asp.Net Identity自定义user类的运用,ClaimsIdentity
mvc5自动生成的用户验证是比较好用的,还可以扩展,可是要求code first,目前使用sqlite,支持entity framework,但不支持code first. 只有自已简单模仿一下了.经 ...
- Asp.Net.Identity认证不依赖Entity Framework实现方式
Asp.Net.Identity为何物请自行搜索,也可转向此文章http://www.cnblogs.com/shanyou/p/3918178.html 本来微软已经帮我们将授权.认证以及数据库存储 ...
- 介绍 ASP.NET Identity - ASP.NET 应用程序的成员身份认证系统
ASP.NET Identity 是构建 ASP.NET web 应用程序的一种新的身份认证系统.ASP.NET Identity 可以让您的应用程序拥有登录功能,并可以轻松地自定义登录用户的相关数据 ...
- ABP源码分析四十二:ZERO的身份认证
ABP Zero模块通过自定义实现Asp.Net Identity完成身份认证功能, 对Asp.Net Identity做了较大幅度的扩展.同时重写了ABP核心模块中的permission功能,以实现 ...
随机推荐
- 【代码笔记】Web-HTML-颜色
一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- CMake笔记(一)
CMake,比makefile更方便,虽然手写makefile同样重要 CMake的所有命令均出现在CMakeList.txt中,注意名字不要写错,并置于源代码目录中 # CMake 最低版本号要求 ...
- Salesforce服务云简介
服务云简介 Salesforce的服务云(Service Cloud)是专注于客服和呼叫中心解决方案的子系统.它是Salesforce核心CRM系统的一部分. 服务云特性 服务云提供了客户服务和呼叫中 ...
- 安卓开发ScrollView嵌套ListView只显示一行
在用列表控件做一个“更多功能”的界面的时候 <?xml version="1.0" encoding="utf-8"?> <ScrollVie ...
- onSaveInstanceState场景
需要注意的是, onSaveInstanceState()方法并不是一定会被调用的, 因为有些场景是不需要保存状态数据的. 比如用户按下BACK键退出activity时, 用户显然想要关闭这个acti ...
- Apktool(1)——Apktool的安装
Apktool是google提供的apk的编译工具,有了它就可以做很多事情.比如获取apk的源码,apk汉化,对手机rom包做一些美化. 首先来看看apktool的安装(配置): 以下内容主要翻译字A ...
- (其他)最常用的15大Eclipse开发快捷键技巧
转自CSDNJava我人生(陈磊兴) 原文出处 引言 做java开发的,经常会用Eclipse或者MyEclise集成开发环境,一些实用的Eclipse快捷键和使用技巧,可以在平常开发中节约出很多 ...
- OneAPM大讲堂 | Java 异常日志记录最佳实践
[编者按]本文作者是 Casey Dunham.Casey 是一位具有 10 多年经验的专业软件开发人员,以其独特的方式应对应用安全问题而闻名.本文系国内 ITOM 管理平台 OneAPM 工程师编译 ...
- maven(九),install安装到本地仓库
下载oracle驱动jar包 在maven中央仓库中,是没有oracle驱动jar包的.因为oracle是商业软件,其jar包不允许用作开源用途.从http://www.mvnrepository.c ...
- Centos 下添加开机自启动服务和脚本
最近刚玩Centos7的系统,跟Centos6还是很多方面有改变的,这里记录一下怎么在Centos7下添加开机自启动脚本和服务的方法. 1.添加开机自启服务 我这里以docker 服务为例,设置如下两 ...