【发布时间】:2020-05-22 04:42:11
【问题描述】:
我有基于 .net core3.1 和 iis 服务器的网络应用程序。
出于某种原因,我无法在注销时删除 cookie。
我试过Response.Cookies.Delete(cookie.Key); 和Response.Cookies.Append(cookie.Key, "", options);
使用options.Expires = DateTime.Now.AddDays(-1) 和options.MaxAge = new TimeSpan(0);,但这仍然不起作用。
当我在 localhost 上运行项目时没有出现问题。
我在 startup.cs 文件中的配置。
配置服务:
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(15);
options.Cookie.IsEssential = true;
options.Cookie.Name = "b2bApp";
});
services.ConfigureApplicationCookie(options =>
{
// Cookie settings
options.Cookie.HttpOnly = true;
options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
options.Cookie.SameSite = SameSiteMode.Strict;
options.Cookie.IsEssential = true;
options.Cookie.Name = "b2bApp";
options.ExpireTimeSpan = TimeSpan.FromMinutes(15);
options.LoginPath = "/Identity/Account/Login";
options.AccessDeniedPath = "/Identity/Account/AccessDenied";
options.SlidingExpiration = true;
});
配置:
app.UseCookiePolicy();
app.UseSession();
【问题讨论】:
-
您是否使用 IIS 作为反向代理来托管您的 ASP.NET Core 应用程序?
-
我只是在服务器上安装了 .net core 3.1,然后将 AspNetCoreModuleV2 添加到网站模块中。要发布,我首先创建了一个没有托管代码的应用程序池,然后从 VS 发布
-
在服务器上发布我的“asp.net core mvc”应用程序后,我遇到了同样的问题。调试时效果很好。
标签: c# asp.net-core iis session-cookies