【问题标题】:Problems with routing the default identity pages in an ASP.NET Core with Razor app在带有 Razor 应用程序的 ASP.NET Core 中路由默认标识页面的问题
【发布时间】:2020-01-25 23:45:45
【问题描述】:

我在登录 ASP.NET Core 3.0 应用时遇到问题。

基本上,我希望登录页面位于

mywebsite.com/login

而不是

mywebsite.com/SomerandomRoute/SomeMore/WhyNot/MakeTheUrl/EvenLonger/Identity/Cookies/DefaultIdentity/Pages/Sections/Defaults/Identity/LoginRouteController

默认设置。所以我在身份登录.cshtml文件中添加了@page "/login",当点击顶部导航中的“登录”时它可以工作。

问题是,仅凭这一点,从受保护的页面重定向是行不通的。例如,如果我没有登录并转到帐户设置 URL,我会被重定向到一个很长的 URL,而不是 /login。而且这条路线现在不存在了。

在我的 2.2 应用中我可以

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>
    {
        options.LoginPath = "/login";
    });

它会工作,但在这个 3.0 应用程序中,它会完全破坏登录。提交登录表单只是重定向到索引并且用户没有登录。

我尝试寻找 2.2 和 3.0 之间的重大更改,但似乎没有说明我的特定问题。

【问题讨论】:

    标签: asp.net razor-pages asp.net-core-3.0


    【解决方案1】:

    解决了!

    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(options =>
        {
            options.LoginPath = "/login";
            options.AccessDeniedPath = "/login";
        });
    

    是需要的。

    【讨论】:

      猜你喜欢
      • 2018-11-14
      • 2021-10-02
      • 2019-05-22
      • 2020-11-15
      • 2020-05-06
      • 2023-03-12
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多