ASP.NET基于表单的验证实现网上安全访问,管理

时间:2010-03-03 12:19:41  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:;     +BIN    +Admin    -index.aspx    - test.aspx    - *.aspx    - web.config //Admin文件夹下的web.config    login.aspx    web.config //根目录的web.config    index.aspx      
  正文:最近阅读了Wrax版的《ASP/ target=_blank class=infotextkey>asp.NET安全性高级编程》,里面涉及了基于Forms的验证,发现自己有很多误解,于是决定对《ASP.NET基于表单的验证实现网上安全访问,管理》一文补充与更正.
  
  文件目录为:
  
  
   +BIN
   +Admin
   -index.aspx
   - test.aspx
   - *.aspx
   - web.config //Admin文件夹下的web.config
   login.aspx
   web.config //根目录的web.config
   index.aspx
  
  
  (-)看看FormsAuthentication的重要方法以及属性(更多search MSDN)
  
  FormsCookieName
   返回用于当前应用程序的已配置 Cookie 名称。
  GetAuthCookie
   为给定的用户名创建身份验证 Cookie。这不会将 Cookie 设置为传出响应的一部分,因此应用程序对如何发出该 Cookie 有更多的控制权限。
  Authenticate
   给定所提供的凭据,尝试根据包含在已配置凭据存储区中的凭据对凭据进行验证。
  GetRedirectUrl
   返回导致重定向到登录页的原始请求的重定向 URL。
  HashPasswordForStoringInConfigFile
   给定标识哈希类型的密码和字符串,该例程产生一个适合存储在配置文件中的哈希密码。
  RedirectFromLoginPage
   将已验证身份的用户重定向回最初请求的 URL。
  {=========
  备注
  RedirectFromLoginPage 方法重定向到在查询字符串中指定的返回 URL 键。例如,在 URL http://www.contoso.com/login.aspx?ReturnUrl=caller.aspx 中,caller.aspx 是 RedirectFromLoginPage 所重定向到的返回 URL。如果返回键不存在,则 RedirectFromLoginPage 将重定向到 Default.aspx。
   =========}
  SetAuthCookie
   创建身份验证票并将其附加到 Cookie 的传出响应的集合。它不执行重定向。
  SignOut
   移除身份验证票.
  
  (二)让我们一步一步彻底明白页面是怎样验证的
  
  再次说明我们验证的目的:
   Admin文件夹是管理员进行后台管理的"专区",只有通过login.aspx登陆验证后才能进入Admin文件夹里面访问里面的所有页面,所有,我们必须通过填写login.aspx的表单来验证用户是否是管理员.
  
  (1) 假设我们在根目录的index.aspx设置一个连接<a href=login.aspx>管理员登陆</a>,管理员可以通过这个连接,访问login.aspx进行填写表单.这里出现了一个奇妙的思维定势的问题,我们习惯这个"管理员登陆"连接来连接到login.aspx,其实在这里,我们错了,应该"直接"连接到Admin文件夹(或者里面的任何页面),有人问:"这岂不是普通访问者也可以通过这个连接直接连接到了Admin的页面了吗?",我说:"对!,这就是基于表单验证的美妙之处,不用担心这个问题,看看我们的2个web.config就明白了!".
  
  看看Admin文件夹里面的web.config
  
  
  <configuration>
   <system.web>
   <authorization>
   <deny users="?" />
   </authorization>
   </system.web>
  </configuration>
  
  有一个<deny users="?"/>,就是说没有通过验证的匿名用户绝对禁止访问这个文件夹-Admin.
  那么,如果匿名用户真的这样做了(试图连接Admin文件夹里面的页面)会怎样呢?哈哈,会定向到login.aspx页面的,看看根目录的web.config
  
  
  <configuration>
   <system.web>
   <authentication mode="Forms">
   <forms name="mycookiename" loginUrl="login.aspx" protection="All" timeout="30">
   </forms>
   </authentication>
   <authorization>
   <allow users="*"/> "ASP.NET基于表单的验证实现网上安全访问,管理"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13001.html


关键字:

关于《ASP.NET基于表单的验证实现网上安全访问,管理》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td