ASP.NET Core 3 Identity 的 Cookie 问题

问题描述

我在使用 Identity 时遇到 cookie 问题,我将过期时间设置为 7 天,并且在我的本地开发环境中它会记住我。但是,当我发布到生产服务器时,它似乎在大约 30 分钟后不记得我了。我可以在生产服务器发回的 cookie 中看到,它对未来的 expires 属性具有正确的值。然而,我注意到的一个区别是,在我的本地开发环境中,该服务发布了一个会话 ID cookie,但在生产服务器上却没有。我还听说有人提到,如果安全标记发生变化,它也会使您的 cookie 失效,但是我之前和之后都检查过安全标记,但它没有更新。

这是我在启动时用来配置 cookie 的代码

            services.ConfigureApplicationCookie(options =>
            {
                options.Cookie.SameSite = SameSiteMode.Unspecified;
                options.Cookie.HttpOnly = true;
                options.Cookie.IsEssential = true;
                options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
                options.ExpireTimeSpan = TimeSpan.FromDays(7);
                options.SlidingExpiration = true;
                options.LoginPath = "/signin";
                options.logoutPath = "/signout";
            });

一个看似无关的问题,LoginPath 和 logoutPath 设置从未起作用,我不得不将重定向放在不会覆盖的认操作上,以使其执行我想要的操作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)