微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我正在尝试创建一个保持登录状态的功能,但是我在一小时内一直保持注销状态

如何解决我正在尝试创建一个保持登录状态的功能,但是我在一小时内一直保持注销状态

从我的代码中可以看到,我正在使用FormAuthentication,并且根据用户是否选择保持登录状态来创建扩展的cookie到期。我还在web.config中延长了会话状态的超时时间。当我在本地主机和调试模式下进行测试时,我可以看到传递的Cookie过期时间延长了,它似乎可以正常工作,并且我保持登录状态数小时。只有当我将代码推送到我的网站时,它才会在一小时内注销我。关于我可能会缺少的任何想法吗?

public void CreateCookie(int userID,bool keepLoggedIn,string email,string firstname)
    {
        DateTime cookieExpires = DateTime.MinValue;
        
        //Set +cookie values
        cookieExpires = keepLoggedIn ? DateTime.Now.AddDays(90) : DateTime.Now.AddHours(1);

        var ticket = new FormsAuthenticationTicket(1,email,DateTime.Now,cookieExpires,true,String.Format("{0}|{1}|{2}",userID,fname),FormsAuthentication.FormsCookiePath);

        //Encrypt the ticket
        var encTicket = FormsAuthentication.Encrypt(ticket);
        // Create the cookie
        var cookie = new HttpCookie(FormsAuthentication.FormsCookieName,encTicket);

        if (ticket.IsPersistent)
        {
            cookie.Expires = ticket.Expiration;
        }
        cookie.Path = "/";

        HttpContext.Current.Response.Cookies.Add(cookie);
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。