[英].Net core authentication fails after setting cookie path
当我以下列方式在startup.cs中设置cookie路径时
.AddCookie(opts =>
{
opts.AccessDeniedPath = "/Account/AccessDenied";
opts.LoginPath = "/Account/SignIn";
opts.Cookie.HttpOnly = true;
opts.Cookie.SecurePolicy = CookieSecurePolicy.Always;
opts.SessionStore = authSessionStore;
opts.Cookie.Path = "/api";
});
身份验证失败。 要进行身份验证,请使用azure / microsoft登录名(如果有道理的话)。 尝试登录时,它只会不断刷新浏览器。我的意思是当我按下loggin按钮转到microsoft登录页面时,consol中没有错误,或者发生了什么。 在输出中,我可以看到以下几行:
Microsoft.AspNetCore.Authorization.DefaultAuthorizationService:信息:用户授权失败:(空)。 Microsoft.AspNetCore.Mvc.ChallengeResult:信息:使用身份验证方案()执行ChallengeResult。
关于这一点的任何想法,为什么会发生,以及如何通过保持指定的路径来解决它?
PS删除路径时工作正常,如果没有足够的细节,请说。 PS我正在使用.Net Core 2.0
如果您使用的是.Net Core 2.1.x及更高版本,则需要添加IsEssential = true
.AddCookie(opts =>
{
opts.AccessDeniedPath = "/Account/AccessDenied";
opts.LoginPath = "/Account/SignIn";
opts.Cookie.HttpOnly = true;
opts.Cookie.SecurePolicy = CookieSecurePolicy.Always;
opts.SessionStore = authSessionStore;
opts.Cookie.Path = "/api";
opts.Cookie.IsEssential = true;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.