Asp.net身份认证记录
基础知识
身份标识在客户端主要是两个存储位置:
cookie 常用
url 很少用 url作为cookie禁用的备选方案
form 几乎不用 很麻烦,每次请求都必须是form提交方式
authorization 很少用,header.authorization里面存的是base64的明文数据,不安全,一般在路由器或简单文档浏览上会用身份认证模式,因为简单方便
普通登录,自己登录,验证授权
OAuth2.0, 一个通用的认证授权服务,主要提供给app的api。特别是对于数据访问调用的情况。例如转发微博,但这个滥用比较危险
OpenID , 通用的认证服务,用来统一登录功能的。网站A支持X的OpentID,则可以在登录时在X登录后拥有一个OpenId标识,这个标识A也是认可的身份标识,两方的数据并不通用,
SSO, 单点登录 ,统一认证,授权的web服务。登录后可以有数据互通。
net认证机制
FORM身份验证, 依赖Cookie或URL中的标识
集成WINDOWS验证 适合内联网(局域网)用,依赖于IIS
Basic基础认证 将票据信息保存在head.Authorization里,跳转时必须url传送,不能自动携带,安全新低
Digest摘要认证 客户端和服务器端 约定加密方式,传送单向加密信息摘要,服务端同样加密来验证
服务器端的session数据存储位置为两种
客户端,存储在cookie中,每次请求发送给服务器,解析后在后台代码中使用,客户流量大点,安全性低些,服务器内存占用低些
服务器端,存储在服务器内存中,内存占用高一些,安全性高,流量低些
Asp.Net身份认证--参考 http://tech.it168.com/a2012/0417/1338/000001338130_all.shtml
认证:在Asp.Net管线中用AuthenticateRequest事件
构造HttpContext.User对象
由FormsAuthenticationModule 实现
授权:在Asp.Net管线中用AuthorizeRequest事件
检查授权,重定向
由UrlAuthorizationModule实现(此moudule结合membership等)
登陆:FormsAuthentication.SetAuthCookie() 方法,是默认的设定登陆票据方法,只有有一个标识,没有其他信息
设定Cookie并加密
注销:FormsAuthentication.SignOut() 方法
清理Cookie标识
判断:Request.IsAuthenticated判断是否登陆
检查HttpContext.User,context.User.Identity,context.User.Identity.IsAuthenticated
过期:FormsAuthenticationTicket为票据基类
票据基类过期时间,SlidingExpiration=true, 则会二者任何一个过期就状态无效
Cookie过期时间
自定义Froms认证
1.自定义用户信息类CustomerUser,实现IPrincipal接口
2.登陆时构建FormsAuthenticationTicket票据,
将CustomerUser实例作为Data传入
加密字符串,FormsAuthentication.Encrypt(ticket)
创建Cookie,名称=FormsAuthentication.FormsCookieName,
写入Cookie
3.Global.asax中加入事件处理
Application_AuthenticateRequest事件
将Cookie取出,解密,构建Context.User对象
多台服务器使用Form认证
默认情况随机密钥是本机生成存储在本地安全机构
多台通用需要配置密钥
<machineKey decryption="Auto" [Auto | DES | 3DES | AES] decryptionKey="AutoGenerate,IsolateApps" />
decryption未加密算法
MVC的Form验证一致,不过授权一般不再用了,改用过滤属性标识
Asp.net身份认证记录的更多相关文章
- ASP.NET 身份认证
ASP.NET 身份认证相关 原理 ASP.NET中身份认证分为两个阶段:认证与授权 1. 认证:识别当前请求的用户是不是一个可识别(登录)用户.AuthenticateRequest 2. 授权:是 ...
- asp.net身份认证
在网上看到几篇比较好的文章很详细讲解了Form.Membership.以及Identity身份认证 Form身份认证: http://www.cnblogs.com/fish-li/archive/2 ...
- 细说ASP.NET Forms身份认证
阅读目录 开始 ASP.NET身份认证基础 ASP.NET身份认证过程 如何实现登录与注销 保护受限制的页面 登录页不能正常显示的问题 认识Forms身份认证 理解Forms身份认证 实现自定义的身份 ...
- 转:细说ASP.NET Windows身份认证
转自:https://www.cnblogs.com/fish-li/archive/2012/05/07/2486840.html 细说ASP.NET Windows身份认证 阅读目录 开始 认识A ...
- 认识ASP.NET Windows身份认证
本文摘自:细说ASP.NET Windows身份认证 Forms身份认证虽然使用广泛,不过,如果是在 Windows Active Directory 的环境中使用ASP.NET, 那么使用Windo ...
- 细说ASP.NET Windows身份认证
上篇博客我谈到了一些关于ASP.NET Forms身份认证方面的话题,这次的博客将主要介绍ASP.NET Windows身份认证. Forms身份认证虽然使用广泛,不过,如果是在 Windows Ac ...
- ASP.NET Forms身份认证详解
ASP.NET身份认证基础 在开始今天的内容之前,我想有二个最基础的问题首先要明确: 1. 如何判断当前请求是一个已登录用户发起的? 2. 如何获取当前登录用户的登录名? 在标准的ASP.NET身份认 ...
- Asp.net MVC使用FormsAuthentication,MVC和WEB API可以共享身份认证 (转载)
在实际的项目应用中,很多时候都需要保证数据的安全和可靠,如何来保证数据的安全呢?做法有很多,最常见的就是进行身份验证.验证通过,根据验证过的身份给与对应访问权限.同在Web Api中如何实现身份认证呢 ...
- 类型:.net;问题:asp.net window验证;结果:细说ASP.NET Windows身份认证
细说ASP.NET Windows身份认证 阅读目录 开始 认识ASP.NET Windows身份认证 访问 Active Directory 在ASP.NET中访问Active Directory ...
随机推荐
- [Effective Modern C++] Item 1. Understand template type deduction - 了解模板类型推断
条款一 了解模板类型推断 基本情况 首先定义函数模板和函数调用的形式如下,在编译期间,编译器推断T和ParamType的类型,两者基本不相同,因为ParamType常常包含const.引用等修饰符 t ...
- 国内好用的公用DNS 服务器。
阿里 AliDNS 223.5.5.5 223.6.6.6 CNNIC SDNS 1.2.4.8 210.2.4.8 Google DNS 8.8.8.8 8.8.4.4 OpenDNS 208.67 ...
- LaTeX中titlesec宏包的使用
在 xelatex 中使用 \usepackage 指令使用 titlesec 宏包时,可以指定一些格式选项,如下: \usepackage[center]{titlesec} 其中 center 可 ...
- iOS正则表达式的使用
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- Zigbee2007协议中文介绍
Zigbee2007中文介绍ZigBee2007规范定义了ZigBee和ZigBee Pro两个特性集,全新的ZigBee 2007规范建立在ZigBee2006之上,不但提供了增强型的功能而且在某些 ...
- flex——dictionary跟Object的区别与遍历
AS3中Object和 Dictionary都可以用来保存key-value形式的数据,Dictionary类和Object唯一的区别在于:Dictionary对象可以使用非字符串作为键值对的键.例如 ...
- Qt之再谈窗体阴影
前面就窗口阴影已经写过一篇博客,使用九宫格的思路实现的,在我看来,凡是用程序能实现的尽量不要使用图片代替(在保证效率的前提下),今天再次分享关于我的一些小见解! 先看效果: 窗口阴 ...
- jquery的clone办法bug修复
发现测试,textarea和select的jquery的clone有问题的方法,textarea和select值clone时间会输.这是发现jquery一个bug,上不了的能够看下代码.比較简单.就是 ...
- 好用的DNS服务器推荐
DNS在平时上网中扮演重要角色,如果不注意DNS的话,可能会导致网速慢.弹窗广告.网址打不开.打开不是自己想要的网站.淘宝客劫持等一系列问题.针对DNS的问题,网络上也有各种DNS平台供用户选择.这里 ...
- 教你如何理解SQL
1. SQL 是一种声明式语言 首先要把这个概念记在脑中:“声明”. SQL 语言是为计算机声明了一个你想从原始数据中获得什么样的结果的一个范例,而不是告诉计算机如何能够得到结果.这是不是很棒? (译 ...