使用 Razor 应用在 ASP.NET Core 中路由默认标识页时出现问题



我在登录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";
});

是需要的。

最新更新