基础知识
  身份标识在客户端主要是两个存储位置:
    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身份认证记录的更多相关文章

  1. ASP.NET 身份认证

    ASP.NET 身份认证相关 原理 ASP.NET中身份认证分为两个阶段:认证与授权 1. 认证:识别当前请求的用户是不是一个可识别(登录)用户.AuthenticateRequest 2. 授权:是 ...

  2. asp.net身份认证

    在网上看到几篇比较好的文章很详细讲解了Form.Membership.以及Identity身份认证 Form身份认证: http://www.cnblogs.com/fish-li/archive/2 ...

  3. 细说ASP.NET Forms身份认证

    阅读目录 开始 ASP.NET身份认证基础 ASP.NET身份认证过程 如何实现登录与注销 保护受限制的页面 登录页不能正常显示的问题 认识Forms身份认证 理解Forms身份认证 实现自定义的身份 ...

  4. 转:细说ASP.NET Windows身份认证

    转自:https://www.cnblogs.com/fish-li/archive/2012/05/07/2486840.html 细说ASP.NET Windows身份认证 阅读目录 开始 认识A ...

  5. 认识ASP.NET Windows身份认证

    本文摘自:细说ASP.NET Windows身份认证 Forms身份认证虽然使用广泛,不过,如果是在 Windows Active Directory 的环境中使用ASP.NET, 那么使用Windo ...

  6. 细说ASP.NET Windows身份认证

    上篇博客我谈到了一些关于ASP.NET Forms身份认证方面的话题,这次的博客将主要介绍ASP.NET Windows身份认证. Forms身份认证虽然使用广泛,不过,如果是在 Windows Ac ...

  7. ASP.NET Forms身份认证详解

    ASP.NET身份认证基础 在开始今天的内容之前,我想有二个最基础的问题首先要明确: 1. 如何判断当前请求是一个已登录用户发起的? 2. 如何获取当前登录用户的登录名? 在标准的ASP.NET身份认 ...

  8. Asp.net MVC使用FormsAuthentication,MVC和WEB API可以共享身份认证 (转载)

    在实际的项目应用中,很多时候都需要保证数据的安全和可靠,如何来保证数据的安全呢?做法有很多,最常见的就是进行身份验证.验证通过,根据验证过的身份给与对应访问权限.同在Web Api中如何实现身份认证呢 ...

  9. 类型:.net;问题:asp.net window验证;结果:细说ASP.NET Windows身份认证

    细说ASP.NET Windows身份认证 阅读目录 开始 认识ASP.NET Windows身份认证 访问 Active Directory 在ASP.NET中访问Active Directory ...

随机推荐

  1. Js中JSON.stringify()与JSON.parse()与eval()详解及使用案例

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.因为采用独立于语言的文本格式,也使用了类似于C语言家族的习惯,拥有了这些特性使使JSON称为理想的数据交换语 ...

  2. php讲中文json数据编码

    <?php function show_jsonmsg($data){ if(is_array($data)){ $return = $data; }else{ $return = array( ...

  3. Android 屏蔽ScrollView滑动操作

    屏蔽ScrollView滑动操作,如下,会用到ViewConfiguration这个类,这个类可以获取到用户是否为滑动操作的临界值. 代码如下: package com.xx.uikit.view; ...

  4. 括号配对问题--nyoj-2(栈)

    括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述现在,有一行括号序列,请你检查这行括号是否配对.   输入 第一行输入一个数N(0<N<=10 ...

  5. HDU 2553 N皇后问题(dfs)

    N皇后问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 在 ...

  6. API接口测试01理论

    定义 接口测试是系统组件间及多个系统之间的测试 如:app与Server间如何进行数据交换,传递 意义 确保主要流程及系统的稳定性 将BUG控制在项目前期 缩短产品的研发周期 检查服务器的异常处理能力 ...

  7. 使用TypeScript开发一个在线记事本,支持离线存储

    先贴上源码传送门: https://github.com/flowforever/yaryin.note 记事本网址: http://yindoc.com , 井号后面写你喜欢的文件名即可. 最近在研 ...

  8. QT:轻松获取网页源码

    获取网页源码的小例子,代码很简单,就不多作解释了. 不过一定要注意网页的编码问题,否则会出现乱码的!!! #include <QtCore> #include <QtNetwork& ...

  9. ISSkin Pack 3.0 (含预览程序 ISSkinViewer)

    原文 http://restools.hanzify.org/article.asp?id=108 包含 250 款皮肤, 预览程序纯粹的由Inno Setup脚本写成. 足以展示Inno Setup ...

  10. EasyUI Combotree 只允许选择 叶子节点

    $("#SDID").combotree({ url: '/Ajax/GetDeptTree.aspx?level=4&pid=-1', onSelect: functio ...