繁体   English   中英

.Net核心身份验证设置cookie路径后失败

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM