我有一个使用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();
然后我在控制器中使用[授权]。
答案 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