Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确创建ASP.NET成员资格cookie?_Asp.net - Fatal编程技术网

如何正确创建ASP.NET成员资格cookie?

如何正确创建ASP.NET成员资格cookie?,asp.net,Asp.net,我正在为我的登录系统使用会员API,一件奇怪的事情一直困扰着我。我允许用户选择是否“记住我”,这意味着是否创建一个具有一个月到期期的持久cookie 在Web.config中,我写道: <authentication mode="Forms"> <forms timeout="60" /> </authentication> 然而,结果却很奇怪。我似乎已经创建了一个60分钟的持久cookie!这是怎么可能的?您正在将cookie过期时间设置为1个月,但

我正在为我的登录系统使用会员API,一件奇怪的事情一直困扰着我。我允许用户选择是否“记住我”,这意味着是否创建一个具有一个月到期期的持久cookie

在Web.config中,我写道:

<authentication mode="Forms">
  <forms timeout="60"  />
</authentication>

然而,结果却很奇怪。我似乎已经创建了一个60分钟的持久cookie!这是怎么可能的?

您正在将cookie过期时间设置为1个月,但它包含的身份验证票证尚未修改。它从web配置中继承了默认值60分钟

您可能希望将cookie过期与身份验证票证过期同步,或者将cookie设置为具有很长的过期日期

你需要做的是

  • 手动创建FormsAuthenticationTicket实例并设置 实例的过期属性

  • 用于加密票据

  • 将cookie添加到响应。手动添加包含票据的cookie集合。(而不是使用get/setAuthCookie(),后者使用 web.config设置)


  • 文档中有一些示例代码。

    Hi这是我的一个错误步骤!我相信这是很少有文件记录,但应该经常需要。你就是那个人!
    if(Membership.ValidateUser(UsernameTextBox.Text, PasswordTextBox.Text))
            {
                authCookie = FormsAuthentication.GetAuthCookie(UsernameTextBox.Text, RememberMeCheckBox.Checked);
                if(RememberMeCheckBox.Checked)
                    authCookie.Expires = DateTime.Now.AddMonths(1);
                Response.Cookies.Add(authCookie);
                Response.Redirect(FormsAuthentication.GetRedirectUrl(UsernameTextBox.Text, RememberMeCheckBox.Checked));
            }