none
asp.net 集成表单登录问题 RRS feed

  • 问题

  • 用同一个账户在以下两种情况下重复登录(不关闭浏览器),一直停在登录页
    1.在其cookie过期后再重新登录
    2.不正常退出(断电等异常情况关闭电脑),下次再登录时也不行
    各位朋友有没有遇到这种情况,或者说怎么处理就能解决此问题
    谢谢

    2009年5月31日 7:06

全部回复

  • 记录ip?
    【孟子E章】
    2009年5月31日 7:16
    版主
  • 你是怎么记录登陆的?逻辑是什么?用了哪些技术?
    低调,低调
    哈哈,书出了,可以点这里购买哦。。
    2009年5月31日 8:50
    版主
  • #region 登录成功部分代码            
    FormsAuthentication.SetAuthCookie(uName, true);

                //获取用户的 cookie
                HttpCookie cookie = FormsAuthentication.GetAuthCookie(uName, true);

                //给用户的 cookie 的值加上 cookie 的域 和 过期日期
                //向客户端重写同名的 用户 cookie
                FormsAuthenticationTicket oldTicket = FormsAuthentication.Decrypt(cookie.Value);
                FormsAuthenticationTicket newTicket = new FormsAuthenticationTicket(1,
                    oldTicket.Name,
                    oldTicket.IssueDate,
                    DateTime.Now.AddMinutes(30000),
                    true,
                    oldTicket.UserData,
                    FormsAuthentication.FormsCookiePath);
                cookie.Domain = strDomain;
                cookie.Value = FormsAuthentication.Encrypt(newTicket);
                HttpContext.Current.Response.Cookies.Add(cookie);


                this.Response.Redirect("Explor.aspx");
    #endregion登录成功部分代码 

    2009年5月31日 9:06
  • web.config中设置
      
    <authentication mode="Forms">
       <forms loginUrl="Login.aspx"  defaultUrl="Explor.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="false" enableCrossAppRedirects="false" cookieless="UseDeviceProfile" domain="">
       </forms>
      </authentication>
      <authorization>
       <deny users="?"/>
      </authorization>
        <machineKey     validationKey="AutoGenerate,IsolateApps"   decryptionKey="AutoGenerate,IsolateApps"  validation="SHA1"  decryption="Auto" />
    2009年5月31日 9:09
  • 孟哥:

    以上是我代码与配置信息,请您帮我指点一下迷津

    谢谢

    2009年5月31日 9:10
  • 还有就是有时在mathon 这个游览器输入非登录页,由.net登录处理模块检查没有登录过的话会自动转到登录页面,但是输入登录信息确认通过总是无法离开login.aspx页面,不知什么原因


    2009年5月31日 9:13
  •  //给用户的 cookie 的值加上 cookie 的域 和 过期日期

    这部分去掉呢?  直接在config中我记得是有这个设置的?


    紫柔版主的头像真叫萌得一个不行啊。。。。
    2009年5月31日 9:14
  • 孟哥,诡异的西红柿兄长给小弟指定一下,谢谢

    2009年5月31日 9:15
  •  韦兄:
    以前我是这样写都不行,web.config同向
    #region 登录成功部分代码   
    FormsAuthentication.RedirectFromLoginPage('用户名' ,Persist.Checked);  
    #endregion登录成功部分代码 
    2009年5月31日 9:20
  • web.config中设置
      
    <authentication mode="Forms">
       <forms loginUrl="Login.aspx"  defaultUrl="Explor.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" cookieless="UseDeviceProfile" domain="">
       </forms>
      </authentication>
      <authorization>
       <deny users="?"/>
      </authorization>
        <machineKey     validationKey="AutoGenerate,IsolateApps"   decryptionKey="AutoGenerate,IsolateApps"  validation="SHA1"  decryption="Auto" />
    2009年5月31日 9:22
  • web.config
    from section段以下属性就是用来设置超时的
    timeout="30"  slidingExpiration="true"
    2009年5月31日 9:24
  • domain

    Optional attribute.

    Specifies an optional domain to set on outgoing forms-authentication cookies. This setting takes precedence over the domain that is used in the httpCookies element.

    This attribute is new in the .NET Framework version 2.0.

    The default is an empty string ("").



    你要不要把修改cookie  domain 的语句去掉 直接在这里设置呢


    紫柔版主的头像真叫萌得一个不行啊。。。。
    2009年5月31日 9:26
  • 韦兄:
    您好,我已经把代码改成以下所示,
    但是还是会出现1,2点提到问题

    用同一个账户在以下两种情况下重复登录(不关闭浏览器),一直停在登录页
    1.在其cookie过期后再重新登录
    2.不正常退出(断电等异常情况关闭电脑),下次再登录时也不行

    ---------------------------------------
    web.config中设置
      
    <authentication mode="Forms">
       <forms loginUrl="Login.aspx"  defaultUrl="Explor.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" cookieless="UseDeviceProfile" domain="">
       </forms>
      </authentication>
      <authorization>
       <deny users="?"/>
      </authorization>
        <machineKey     validationKey="AutoGenerate,IsolateApps"   decryptionKey="AutoGenerate,IsolateApps"  validation="SHA1"  decryption="Auto" />

    ---------------------------------------------------------------------
    #region 登录成功部分代码   
    FormsAuthentication.RedirectFromLoginPage('用户名' ,Persist.Checked);  
    #endregion登录成功部分代码 
    2009年5月31日 9:31
  • 你debug一下在哪个地方停止的?
    低调,低调
    哈哈,书出了,可以点这里购买哦。。
    2009年5月31日 10:04
    版主
  • 执行完验证按钮事件后,又重新回来login.aspx页的page_load事件,this.Request.Cookies[cookieName]没有值
    2009年5月31日 10:09
  • 去掉 domain="" 试试

    【孟子E章】
    2011年3月14日 4:46
    版主