首页 文章

错误或配置错误? ASP.NET Core 2.1在拒绝访问时触发404错误

提问于
浏览
1

我不确定我是否发现了一个错误,或者我是否只是弄乱了配置 .

我有一个使用AzureADB2C身份验证的ASP.NET Core 2.1 Razor网站,利用新的“预打包”配置实用程序 . 当我尝试访问我的测试用户无权访问的页面时,它返回一个通用的404页面,而不是转到预定义的AccessDenied页面 .

查看浏览器URL,它试图访问:

https:// localhost:44310 / Account / AccessDenied?ReturnUrl =%2FAbout

但我认为它应该是:

https:// localhost:44310 / AzureADB2C / Account / AccessDenied?ReturnUrl =%2FAbout(注意:如果我手动将它放在浏览器中,它可以正常工作)

当您退出时,它会将您带到:

https:// localhost:44310 / AzureADB2C / Account / SignedOut

有谁知道是否有配置来控制此重定向?或者这是新的2.1身份验证模块中的错误? (如果是这样,任何想法如何解决它,直到它被修复?)

1 回答

  • 0

    我向MSFT报告这是一个错误,他们正在研究它 . 但我确实想出了一个解决方法,以防其他人遇到同样的问题 .

    MSFT站点上的问题是:https://developercommunity.visualstudio.com/content/problem/301357/microsoftaspnetcoreauthenticationazureadb2cui-acce.html

    解决方法是使用重写中间件重定向呼叫 . 将以下内容放入Startup.cs类的Configure方法将处理该问题 .

    // Workaround for AccessDenied URL error in MSFT code
            RewriteOptions rewrite = new RewriteOptions().AddRedirect("^Account/AccessDenied(.*)", "AzureADB2C/Account/AccessDenied$1");
            app.UseRewriter(rewrite);
    

相关问题