加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何让用户登录2周?

发布时间:2020-12-15 22:27:55 所属栏目:asp.Net 来源:网络整理
导读:您好 我正在使用asp.net mvc和asp.net会员资格. 我希望有一个复选框,如果点击,可以让用户登录2周(除非他们清除他们的cookie). 所以我知道他们是 FormsAuthentication.SetAuthCookie(userName,createPersistentCookie) 但我不知道如何设置2周保留. 我重写了大
您好

我正在使用asp.net mvc和asp.net会员资格.

我希望有一个复选框,如果点击,可以让用户登录2周(除非他们清除他们的cookie).

所以我知道他们是

FormsAuthentication.SetAuthCookie(userName,createPersistentCookie)

但我不知道如何设置2周保留.

我重写了大部分会员资料.所以我不使用Create()和VerifyUser()之类的东西.

解决方法

您可以在web.config中设置全局会话超时(值以分钟为单位),例如.
<system.web>
    <authentication mode="Forms">
          <forms timeout="20160"/>
    </authentication>
</system.web>

这将适用于所有经过身份验证的用户.如果您想使用“记住我”功能,那么您需要编写自己的代码来设置cookie /票证.像这样的东西(采取from here):

protected void Page_Load()
{
    if (Request.Cookies["username"] == null || Request.Cookies["username"].Value.ToString().Trim() == "")
    {
        Login1.RememberMeSet = true; 
    }
    else
    {
        Login1.UserName = Request.Cookies["username"].Value.ToString().Trim();
        Login1.RememberMeSet = true; 
    }
}
protected void RememberUserLogin()
{
    // Check the remember option for login

    if (Login1.RememberMeSet == true)
    {
        HttpCookie cookie = new HttpCookie("username");
        cookie.Value = Login1.UserName.Trim(); 
        cookie.Expires = DateTime.Now.AddHours(2);

        HttpContext.Current.Response.AppendCookie(cookie);
        Login1.RememberMeSet = true; 

    }
    else if (Login1.RememberMeSet == false)
    {
        HttpContext.Current.Response.Cookies.Remove("username");
        Response.Cookies["username"].Expires = DateTime.Now;
        Login1.RememberMeSet = false; 
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读