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

本文详细介绍了如何在ASP.NET应用中启用Forms身份验证,包括配置web.config文件、设置属性及其作用,以及如何处理身份验证cookie的生命周期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启用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进行验证。


转自何处已无法考证...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值