知识大全 基于窗体的身份验证

Posted

篇首语:一身转战三千里,一剑曾当百万师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 基于窗体的身份验证相关的知识,希望对你有一定的参考价值。

ASP.Net:基于窗体的身份验证  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  基于窗体的验证是最为普遍的一种验证 使用这种验证方式可以很方便灵活地应用到应用程序中 窗体验证方式对基于用户的验证授权提供了很好的支持 可以通过一个登录页面验证用户的身份 将此用户的身份发回到客户端的Cookie 之后此用户再访问这个web应用就会连同这个身份Cookie一起发送到服务端 服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了

  要采用窗体验证 先要在应用程序根目录中的nfig中做相应的设置:

  

  <authentication mode= forms ><forms name= ASPXAUTH loginUrl= /Login aspx timeout= path= / ></forms></authentication>

  其中<authentication mode= Forms > 表示本应用程序采用Forms验证方式

  ( )<Forms>标签中的name表示指定要用于身份验证的 HTTP Cookie 默认情况下 name 的值是 ASPXAUTH 采用此种方式验证用户后 以此用户的信息建立一个FormsAuthenticationTicket类型的身份验证票 再加密序列化为一个字符串 最后将这个字符串写到客户端的name指定名字的Cookie中 一旦这个Cookie写到客户端后 此用户再次访问这个web应用时会将连同Cookie一起发送到服务端 服务端将会知道此用户是已经验证过的

  再看一下身份验证票都包含哪些信息呢 我们看一下FormsAuthenticationTicket类

  CookiePath 返回发出 Cookie 的路径 注意 窗体的路径设置为 / 由于窗体区分大小写 这是为了防止站点中的 URL 的大小写不一致而采取的一种保护措施 这在刷新 Cookie 时使用

  Expiration 获取 Cookie 过期的日期/时间

  IsPersistent 如果已发出持久的 Cookie 则返回 true 否则 身份验证 Cookie 将限制在浏览器生命周期范围内

  IssueDate 获取最初发出 Cookie 的日期/时间

  Name 获取与身份验证 Cookie 关联的用户名

  UserData 获取存储在 Cookie 中的应用程序定义字符串

  Version 返回字节版本号供将来使用

  ( ) <Forms>标签中的loginUrl指定如果没有找到任何有效的身份验证Cookie 为登录将请求重定向到的 URL 默认值为 Login aspx loginUrl指定的页面就是用来验证用户身份的 一般此页面提供用户输入用户名和密码 用户提交后由程序来根据自己的需要来验证用户的合法性(大多情况是将用户输入信息同数据库中的用户表进行比较) 如果验证用户有效 则生成同此用户对应的身份验证票 写到客户端的 Cookie 最后将浏览器重定向到用户初试请求的页面 一般是用FormsAuthentication RedirectFromLoginPage 方法来完成生成身份验证票 写回客户端 浏览器重定向等一系列的动作 RedirectFromLoginPage 方法含有 个参数 函数定义如下

  public static void RedirectFromLoginPage( string userName bool createPersistentCookie string strCookiePath )其中

  userName 就是此用户的标示 用来标志此用户的唯一标示 不一定要映射到用户账户名称

  createPersistentCookie 标示是否发出持久的 Cookie 若不是持久Cookie Cookie的有效期Expiration属性有当前时间加上nfig中timeout的时间 每次请求页面时 在验证身份过程中 会判断是否过了有效期的一半 要是的话更新一次cookie的有效期 若是持久cookie Expiration属性无意义 这时身份验证票的有效期有cookie的Expires决定 RedirectFromLoginPage方法给Expires属性设定的是 年有效期

  strCookiePath 标示将生成的Cookie的写到客户端的路径 身份验证票中保存这个路径是在刷新身份验证票Cookie时使用(这也是生成Cookie的Path) 若没有strCookiePath 参数 则使用nfig中 path属性的设置

  这里可以看到 此方法参数只有三个 而身份验证票的属性有七个 不足的四个参数是这么来的

  IssueDate Cookie发出时间由当前时间得出

  Expiration 过期时间由当前时间和下面要说的<Forms>标签中timeout参数算出 此参数对非持久性cookie有意义

  UserData 这个属性可以用应用程序写入一些用户定义的数据 此方法没有用到这个属性 只是简单的将此属性置为空字符串 请注意此属性 在后面我们将要使用到这个属性

  Version 版本号由系统自动提供

  RedirectFromLoginPage 方法生成生成身份验证票后 会调用FormsAuthentication Encrypt 方法 将身份验证票加密为字符串 这个字符串将会是以 ASPXAUTH为名字的一个Cookie的值 这个Cookie的其它属性的生成 Domain Path属性为确省值 Expires视createPersistentCookie参数而定 若是持久cookie Expires设为 年以后过期 若是非持久cookie Expires属性不设置

  生成身份验证Cookie后 将此Cookie加入到Response Cookies中 等待发送到客户端 最后 RedirectFromLoginPage方法调用FormsAuthentication GetRedirectUrl 方法获取到用户原先请求的页面 重定向到这个页面

  ( ) <Forms>标签中的timeout和path 是提供了身份验证票写入到Cookie过期时间和默认路径

  经过上面的几步 就完成了基于窗体身份验证的过程 基于窗体的身份验证使用的时是非常灵活的 在实际应用中可以根据用户身份进行授权管理 包括基于角色的用户权限管理等 下面一节中 我们来介绍基于Windows的身份验证

  下面这个实例演示了如何利用窗体验证来实现ASP NET的安全控制的 实例是在我们前面已经建立好的MyFirst应用程序中完成的 该Web应用程序包含两个Web窗体 一个是index aspx 代表默认主页 一个是Login aspx 代表用户登录系统页面

  首先是nfig配置文件 如下

cha138/Article/program/net/201311/12989

相关参考

知识大全 谈基于.net平台开发中的模式窗体

  作者郑佐适用于Windows操作系统NETFrameworkx运行时环境NETWindows开发VisualStudio摘要本文阐述了在基于NET平台的Windows程序开发中使用模式窗体的诸多方

知识大全 .NET下基于API封装的DirectUIHWND窗体访问

.NET下基于API封装的DirectUIHWND窗体访问  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 jValidate 基于jQuery的表单验证插件

jValidate基于jQuery的表单验证插件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!网上

知识大全 请问朋友微信别人发的红包如果我实名验证选择了身份证号验证这样成功之后别人可以看见我的身份证信息吗

请问朋友微信别人发的红包如果我实名验证选择了身份证号验证这样成功之后别人可以看见我的身份证信息吗?不是,别人看不到,只是实名制认证,就像你办卡也得用身份证,微信朋友发的红包需要实名验证请问实名验证之后

知识大全 struts2自定义验证器(身份证验证)

  struts的验证器是用的xwork里面的验证自定义验证器就是根据源码继承已有的字段验证器而来具体步骤如下:  展开xworkjaropensymphonyxwork  validatorvali

知识大全 Struts中如何基于validation.xml来启用客户端验证

Struts中如何基于validation.xml来启用客户端验证?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 网上订火车票时每张票的预留验证号码是各自的身份证号吗?

网上订火车票时每张票的预留验证号码是各自的身份证号吗?验证号码是自己的手机号,当然你可以帮别人订,同样可以用你的手机号网上火车票验证身份证号码怎么验证是身份信息显示正在审核中吗?拿身份证到火车站窗口进

知识大全 支持ESMTP身份验证的邮件发送

支持ESMTP身份验证的邮件发送  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用NETFra

知识大全 就来说说Asp.net 身份验证、授权

就来说说Asp.net身份验证、授权  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  [本周]如约

知识大全 12.10.2 服务的身份验证和访问控制

   身份验证是检查以查看特定用户是否是他们所声称用户的过程通常通过常见的用户ID/口令项完成这一点保护Web服务安全的一种方法是强制尝试使用服务的任何人必须首先提供证书