• [导入]表单验证与Cookies


    关于表单验证:
    对于ASP.net里的表单验证,差点让我郁闷死了。前些时候也遇到过这样的问题,但都解决了,而且没有遇到今天这样的问题。

    看这样的例子,谁也想不到会是这样的麻烦:
    login.aspx里:
    private void LinkButton1_Click(object sender, System.EventArgs e)
    {
       FormsAuthentication.RedirectFromLoginPage("WebbUser",false);
    }
    而在index.aspx里只有一个简单的命令:
      private void LinkButton3_Click(object sender, System.EventArgs e)
      {
       FormsAuthentication.SignOut();  
      }
    然而就是这简单的两三行,让我郁闷了一天。就是因为IE和ASP.net本身都有缓存的原因,所以上面的那个签出事件发生以后,并没有马上实现,也就是说这样做返回的是真:
      private void LinkButton3_Click(object sender, System.EventArgs e)
      {
       FormsAuthentication.SignOut(); 
       User.Identity.IsAuthenticated;
      }
    我试了好多次,都必须测试好几次,也就是说要签出好几次才能成功,而且我每次签出都要独立的运行三次(真不知道为什么)。
    而且这样做也不行,一样要让这个函数执行三次:
    private void LinkButton3_Click(object sender, System.EventArgs e)
    {
    FormsAuthentication.SignOut(); 
    FormsAuthentication.SignOut();
    FormsAuthentication.SignOut();
    }
    郁闷死了。
    试了近四个多小时,后来都想放弃了。
    在index.aspx里做了一个小的测试,加了一个button让它向页面里写内容。这样就行了,虽然签出后,页面可能没有变,还是原来的index.aspx页面,但执行其它的命令的时候就会要求登录了。当然我也试了好多其它的情况,都要登录了。这就是说,前面的情况是因为ASP.net的缓存所引起的。当然也有一些IE缓存。
    当然,ASP.net的而在缓存一定是要配置一下的,但对于在学习一些简单的问题的时候,就要注意了,很多情况下,ASP.net的一个功能都不是独立的,它所涉及到的内容可能是好几个知识点,因此,只明白一两个,就去实验,最后吃苦的一定是自己了。
    希望给多多积累一些经验。
        <authentication mode="Forms">
           <forms
      loginUrl = "login.aspx"
      protection = "None"
      name  = "WebbUser"
      path  = "/"
      />  
     </authentication>
    还要与这个相关。如果你的cookies路径设定的不对,那么可以会签出很多次都不成功。

    又测试了一下,总结了以下几个方面的内容:
    1、验证问题。不管是采用自己定义的Cookie来验证还是用系统自带的验证,只要验证成功就行了。
    2、带路径的Cookie可以设定过期时间。默认的路径为'/',但当你的应用程序与该路径不合时,所有的cookie都为临时的,也就是与浏览器生存期一样的。
    3、如果不是长期保存的Cookie,那么设定过期时间是无效的。
    4、如果采用自己的Cookie来验证(长期并设定时间),那么使用签出的时候,记得把Cookie的过期时间也修改一下,否则不能成功的签出。

    好了,这些是自己瞎琢磨的,不一定对,但我试了很多次,也就这些结论了。


    文章来源:http://computer.mblogger.cn/wucountry/posts/46782.aspx
    ================================
      /\_/\                        
     (=^o^=)  Wu.Country@侠缘      
     (~)@(~)  一辈子,用心做一件事!
    --------------------------------
      学而不思则罔,思而不学则怠!  
    ================================
  • 相关阅读:
    python print format
    ElasticSearch的lowlevelApi和低级别API
    Ubuntu下搜狗输入法突然无法输入中文
    mysql基本操作
    eclipse配置代码自动提示
    使用JAAS登录kerberos服务器
    centos7配置kerberos服务,并使用JAAS登录
    LDAP none、simple、strong 笔记
    linux下yum安装最新稳定版nginx
    Mybatis if标签判断大小
  • 原文地址:https://www.cnblogs.com/WuCountry/p/305780.html
Copyright © 2020-2023  润新知