Asp.Net Core 2.0 Cookie身份验证在时间之前到期

时间:2018-11-16 18:18:17

标签: c# authentication asp.net-core-2.0 session-cookies

我有一个使用Cookie身份验证的MVC Asp.Net Core 2.0应用程序。问题是会话提前过期,并将用户重定向到登录路径,从而迫使他再次进行身份验证。

我的创业班:

ConfigureServices方法:

const SwipeCard = () => (
  <Cards onEnd={action("end")} className="master-root">
    {data.map(item => (
      <Card
        key={item}
        onSwipeLeft={action("swipe left")}
        onSwipeRight={action("swipe right")}
      >
        <h2>{item}</h2>
      </Card>
    ))}
  </Cards>
);

关于配置方法:

const string schema = "adminScheme";

services.AddAuthentication(schema).AddCookie(schema, options =>
{
    options.AccessDeniedPath = new PathString("/Account/AcessoNegado");
    options.Cookie = new CookieBuilder
    {
        HttpOnly = true,
        Name = ".Admin.Security.Cookie",
        Path = "/",
        SameSite = SameSiteMode.Lax,
        SecurePolicy = CookieSecurePolicy.SameAsRequest
    };
    options.ExpireTimeSpan = TimeSpan.FromMinutes(480);
    options.LoginPath = new PathString("/Account/Login");
    options.LogoutPath = new PathString("/Account/Logout");
    options.ReturnUrlParameter = "RequestPath";
    options.SlidingExpiration = true;
});

我的登录方法:

 app.UseAuthentication();

然后我在控制器中使用[授权]。

1 个答案:

答案 0 :(得分:1)

我刚刚尝试了您的代码。如果您使用的是2.0.x版本,请按如下所示更改代码:

//ClaimsIdentity identity = new ClaimsIdentity(claims, "cookie");
ClaimsIdentity identity = new ClaimsIdentity(claims, "adminScheme");

现在它对我来说是完美的。

顺便说一句,2.0的版本已在2018年10月1日到期,建议迁移到2.1.x