将网站部署到生产服务器时,浏览器中的Cookie不会过期

时间:2019-02-26 22:05:29

标签: .net cookies core

我们使用安全的Cookie来记住我们网站上的帐户。帐户处理完成后,将删除Cookie,并将处理重定向到站点内的页面以选择下一个帐户。

在本地调试时,将按预期删除cookie。但是,将站点部署到生产IIS服务器时,即使我可以在响应cookie中看到过期的cookie,浏览器也不会使该cookie失效。

以下代码在startup.cs中:

services.Configure<CookiePolicyOptions>(options =>
        {
            options.CheckConsentNeeded    = context => false;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

设置和删除cookie的代码在这里:

        public static void SetCookie<T>(this IHttpContextAccessor ca, string key, T cookieData, TimeSpan timeToLive)
    {
        var json    = JsonConvert.SerializeObject(cookieData);
        var options = new CookieOptions {
                                            Domain      = ca.HttpContext.Request.Host.Host,
                                            Expires     = DateTime.Now + timeToLive,
                                            HttpOnly    = true,
                                            IsEssential = true, 
                                            SameSite    = SameSiteMode.Strict,
                                            Secure      = true
                                        };

        ca.HttpContext.Response.Cookies.Append(key, json, options);
    }

    public static void RemoveCookie(this IHttpContextAccessor ca, string key)
    {
        var options = new CookieOptions {
                                            MaxAge  = new TimeSpan(-1),
                                            Expires = DateTime.Now.AddDays(-1),
                                            Secure = true
                                        };

        ca.HttpContext.Response.Cookies.Delete(key, options);
    }

我不确定从这里去哪里。预先感谢您的帮助。

最好的问候, 吉米

0 个答案:

没有答案