快速业务通道

ASP.NET安全问题--Froms验证的具体介绍(中篇)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

前言:今天是端午节,大家节日快乐!别忘了过我们的传统节日!!!因为前一篇文章已经谈论了与Forms验证有关的一些理论的知识,所以本篇主要讲述Forms验证一般的使用方法,也给出一些代码。可能有些话题之前园子里有朋友谈论过,如果有重复,那么就权当是复习也行!

本篇的话题如下:

启用Forms身份验证

用户信息的存储

web.config配置的一些用法

Forms验证简单的功能介绍

Forms验证中的Cookie问题

启用Forms身份验证

相信大家对很清楚如何启用 Forms验证,但是这里我还是罗嗦一下。

我们只要在 web.config文件中配置如下就行了:

<authentication mode="Forms"/>

这样之后,ASP.NET运行时就知道我们启用了Forms验证,在生命周期的验证阶段就激活FormsAuthenticationModule模块。

还有一点要特别注意:<authentication/>元素节点只能在应用程序的根文件夹中的 web.config中配置。如果在子文件夹中使用这个节点就会报错。这也说明了每个应用程序只能定义一个身份验证类型。

而且在<authentication/>节点中,我们还可以进行更多的设置。如下:

<authentication mode="Forms ">
       <forms name="MyCookie"
               loginUrl="Login.aspx"
              timeout="60"
              path="/"
              protection="All">

       </forms>
  </authentication>

我们下面就看看<forms>节点中的属性的含义和用途:

name:定义身份验证cookie的名称。因为我们把身份验证的票据是存放在cookie中的,而且我们必须给身份验证cookie取具有唯一性的名称,防止和其他的应用程序中的cookie冲突。

loginUrl:从英文名字就可以知道是关于登录的。实际上就是标明把用户重定向到哪个页面取登录。

timeout:设置身份验证cookie持续的时间,以分钟为单位的。而且这个时间是一个相对的时间,就是说每次对用户进行验证时,cookie的期限就会被重新设置。如果在60分钟内用户再没有向服务器发起请求,那么cookie就过期,之后如果用户再次发起请求,那么就要重新输入用户名和密码等信息。

path:设置cookie的保存的路径,一般是设置为"/",我们不要轻易的改变。

我们之前也说过,我们的身份验证的票据是加密以后再存放如cookie中的,然后再把cookie发送到客户端。当客户端再次请求的时候,再服务器端就会解析客户端发送来的cookie信息,我们必须要确认:客户端发送来的cookie信息就是我们之前从服务器端发送过去的,也就是说,我们要判断,我们的cookie在客户端是否被篡改了。

所以,这就是<forms/>中属性protection的用途。protection的值有四个:

Encryption:对cookie的内容信息进行加密。

Validation:向cookie中的内容添加MAC(消息验证代码),以便服务器判断cookie是否被篡改了。

None:禁用加密和篡改检查

All:同时启用加密和篡改检查。

默认情况下是"All",因为它可以把数据加密放入cookie中,而且对返回到服务器端的cookie进行验证。

用户信息的存储

我们一般把用户的信息,如用户名和密码存放在数据库中。如之前一篇文章说的,我们也可以把用户的用户名和密码信息直接放在web.config文件中。

Forms验证其实对把用户凭证信息放在哪里提供了很大的灵活性。默认情况下是放在web.config中的。如下代码:

<authentication mode="Forms ">
       <forms name="MyCookie"
              loginUrl="Login.aspx"

              timeout

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号