错误或配置错误? ASP.NET Core 2.1 在访问被拒绝时触发 404 错误
Bug or misconfigured? ASP.NET Core 2.1 firing 404 error on Access Denied
我不确定我是否发现了错误,或者我是否只是以某种方式搞砸了配置。
我有一个 ASP.NET Core 2.1 Razor 网站,使用 AzureADB2C 身份验证,利用新的 'pre-packaged' 配置实用程序)。当我尝试访问我的测试用户无权访问的页面时,它 returns 一个通用的 404 页面,而不是转到预定义的 AccessDenied 页面。
查看浏览器 URL,它正在尝试前往:
https://localhost:44310/Account/AccessDenied?ReturnUrl=%2FAbout
不过我觉得应该是:
https://localhost:44310/AzureADB2C/Account/AccessDenied?ReturnUrl=%2FAbout
(Note: if I manually put this in the browser, it works correctly)
当您注销时,它会将您带到:
有谁知道是否有控制此重定向的配置?或者这是新的 2.1 身份验证模块中的错误? (如果是这样,有什么想法可以解决它直到它被修复吗?)
我已将此作为错误报告给 MSFT,他们正在调查。但我确实找到了解决方法,以防其他人遇到同样的问题。
解决方法是使用重写中间件重定向调用。将以下内容放入 Startup.cs class 的 Configure 方法中即可解决问题。
// Workaround for AccessDenied URL error in MSFT code
RewriteOptions rewrite = new RewriteOptions().AddRedirect("^Account/AccessDenied(.*)", "AzureADB2C/Account/AccessDenied");
app.UseRewriter(rewrite);
我不确定我是否发现了错误,或者我是否只是以某种方式搞砸了配置。
我有一个 ASP.NET Core 2.1 Razor 网站,使用 AzureADB2C 身份验证,利用新的 'pre-packaged' 配置实用程序)。当我尝试访问我的测试用户无权访问的页面时,它 returns 一个通用的 404 页面,而不是转到预定义的 AccessDenied 页面。
查看浏览器 URL,它正在尝试前往:
https://localhost:44310/Account/AccessDenied?ReturnUrl=%2FAbout
不过我觉得应该是:
https://localhost:44310/AzureADB2C/Account/AccessDenied?ReturnUrl=%2FAbout (Note: if I manually put this in the browser, it works correctly)
当您注销时,它会将您带到:
有谁知道是否有控制此重定向的配置?或者这是新的 2.1 身份验证模块中的错误? (如果是这样,有什么想法可以解决它直到它被修复吗?)
我已将此作为错误报告给 MSFT,他们正在调查。但我确实找到了解决方法,以防其他人遇到同样的问题。
解决方法是使用重写中间件重定向调用。将以下内容放入 Startup.cs class 的 Configure 方法中即可解决问题。
// Workaround for AccessDenied URL error in MSFT code
RewriteOptions rewrite = new RewriteOptions().AddRedirect("^Account/AccessDenied(.*)", "AzureADB2C/Account/AccessDenied");
app.UseRewriter(rewrite);