我在登录Core 3.0应用程序时遇到问题 ASP.NET。
从本质上讲,我希望登录页面位于
mywebsite.com/login
而不是
mywebsite.com/SomerandomRoute/SomeMore/WhyNot/MakeTheUrl/EvenLonger/Identity/Cookies/DefaultIdentity/Pages/Sections/Defaults/Identity/LoginRouteController
这是默认值。所以我@page "/login"
添加到身份登录.cshtml
文件中,当单击顶部导航中的"登录"时,它可以工作。
问题是,仅凭这一点,从受保护的页面重定向是行不通的。例如,如果我没有登录并转到帐户设置 URL,我会被重定向到一个 URL 而不是/login
的长可憎。这条路线现在不存在了。
在我的 2.2 应用程序中,我可以
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/login";
});
它会起作用,但在这个 3.0 应用程序中它会完全破坏登录。提交登录表单只会重定向到索引,用户未登录。
我尝试在 2.2 和 3.0 之间寻找重大更改,但似乎没有说明我的特定问题。
解决了!
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/login";
options.AccessDeniedPath = "/login";
});
是需要的。