ASP.NET Core Identity 2.2-用户在关闭浏览器后不会注销

时间:2019-04-08 14:07:19

标签: c# asp.net-core asp.net-core-identity

我这样设置身份:

services.AddIdentity<User, Role>(options =>
{                
    //...
})
.AddEntityFrameworkStores<MyDbContext>()
.AddDefaultTokenProviders();

services.ConfigureApplicationCookie(options =>
{
    options.Events = new CookieAuthenticationEvents
    {
        OnRedirectToLogin = ctx => {
            ctx.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
            return Task.FromResult(0);
        },
        OnRedirectToAccessDenied = ctx =>
        {
            ctx.Response.StatusCode = (int)HttpStatusCode.Forbidden;
            return Task.FromResult(0);
        }
    };
    options.AccessDeniedPath = null;
    options.LoginPath = null;
    options.LogoutPath = null;
});

当我使用SignInManager.PasswordSignInAsync并为true参数传递isPersistent时,将创建一个名为AspNetCore.Identity.Application的cookie,其有效期设置为2周,到目前为止没有问题

当我为false参数传递isPersistent时,cookie的到期日期未设置,并且在浏览器开发者控制台中看到N / A。当我关闭浏览器并再次打开时,cookie仍然存在,并且我仍然登录。

编辑

在Edge浏览器上,过期设置为session,关闭并打开浏览器会删除cookie。在Opera上,过期设置为1969-12-31T23:59:59.000Z,但在关闭和打开后,cookie仍然存在。他们对本地主机的行为有没有机会?

0 个答案:

没有答案