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验证一致,不过授权一般不再用了,改用过滤属性标识

时间: 2024-10-05 22:00:42

Asp.net身份认证记录的相关文章

ASP.NET 身份认证

ASP.NET 身份认证相关 配置 <system.web> <compilation debug="true" targetFramework="4.6.1"/> <authentication mode="Forms"> <forms loginUrl="~/Login.aspx" timeout="3000"></forms> </au

ASP.NET身份认证和权限认证

public partial class admin : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try { if (Request.Cookies[FormsAuthentication.FormsCookieName] != null) { var cookies = Request.Cookies[FormsAuthentication.FormsCookieName]; var

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

在实际的项目应用中,很多时候都需要保证数据的安全和可靠,如何来保证数据的安全呢?做法有很多,最常见的就是进行身份验证.验证通过,根据验证过的身份给与对应访问权限.同在Web Api中如何实现身份认证呢?接下来的内容就介绍使用Asp.Net的FormsAuthentication来同时做Mvc 和 Web API的身份认证. 首先扩展自定义身份验证添加类 CustomAuthorizeAttribute.cs该类继承自System.Web.Http.AuthorizeAttribute(身份认证类

细说ASP.NET Forms身份认证

用户登录是个很常见的业务需求,在ASP.NET中,这个过程被称为身份认证. 由于很常见,因此,我认为把这块内容整理出来,与大家分享应该是件有意义的事. 在开发ASP.NET项目中,我们最常用的是Forms认证,也叫[表单认证]. 这种认证方式既可以用于局域网环境,也可用于互联网环境,因此,它有着非常广泛的使用. 这篇博客主要讨论的话题是:ASP.NET Forms 身份认证. 有一点我要申明一下:在这篇博客中,不会涉及ASP.NET的登录系列控件以及membership的相关话题, 我只想用比较

细说ASP.NET Windows身份认证

上篇博客我谈到了一些关于ASP.NET Forms身份认证方面的话题,这次的博客将主要介绍ASP.NET Windows身份认证. Forms身份认证虽然使用广泛,不过,如果是在 Windows Active Directory 的环境中使用ASP.NET, 那么使用Windows身份认证也会比较方便. 方便性表现为:我们不用再设计登录页面,不用编写登录验证逻辑.而且使用Windows身份认证会有更好的安全保障. 回到顶部 认识ASP.NET Windows身份认证 要使用Windows身份认证

细说ASP.NET Forms身份认证 别人写的不过很透彻就转来了以后用时再看

阅读目录 开始 ASP.NET身份认证基础 ASP.NET身份认证过程 如何实现登录与注销 保护受限制的页面 登录页不能正常显示的问题 认识Forms身份认证 理解Forms身份认证 实现自定义的身份认证标识 在多台服务器之间使用Forms身份认证 在客户端程序中访问受限页面 用户登录是个很常见的业务需求,在ASP.NET中,这个过程被称为身份认证. 由于很常见,因此,我认为把这块内容整理出来,与大家分享应该是件有意义的事. 在开发ASP.NET项目中,我们最常用的是Forms认证,也叫[表单认

.NET Web的身份认证

百度一下”asp.net身份认证“,你会得到很多相关的资料,这些资料通常上来就会介绍诸如”Form认证“”Windows认证“等内容,而没有给出一个完整的流程.初学者对此往往一头雾水,我也曾经被坑过很多回,于是写下此文,算是复习. 现代的Windows Server系统都是基于严格的用户机制的,当你想操作服务器时肯定需要账号密码验证的.当我们把开发好的Web应用程序部署在服务器后,用户通过浏览器访问该站点,实际上就是该用户通过HTTP操作这台服务器的过程,本质上也是用户操作服务器(至少是读)的过

Asp.Net_Web身份验证

百度一下”asp.net身份认证“,你会得到很多相关的资料,这些资料通常上来就会介绍诸如”Form认证“”Windows认证“等内容,而没有给出一个完整的流程.初学者对此往往一头雾水,我也曾经被坑过很多回,于是写下此文,算是复习. 现代的Windows Server系统都是基于严格的用户机制的,当你想操作服务器时肯定需要账号密码验证的.当我们把开发好的Web应用程序部署在服务器后,用户通过浏览器访问该站点,实际上就是该用户通过HTTP操作这台服务器的过程,本质上也是用户操作服务器(至少是读)的过

如何在ASP.NET Core中实现一个基础的身份认证

注:本文提到的代码示例下载地址> How to achieve a basic authorization in ASP.NET Core 如何在ASP.NET Core中实现一个基础的身份认证 ASP.NET终于可以跨平台了,但是不是我们常用的ASP.NET, 而是叫一个ASP.NET Core的新平台,他可以跨Windows, Linux, OS X等平台来部署你的web应用程序,你可以理解为,这个框架就是ASP.NET的下一个版本,相对于传统ASP.NET程序,它还是有一些不同的地方的,比