我目前正在构建一个 C# Net Core 2.2 应用程序,该应用程序使用 Azure B2C OIDC 进行登录/身份验证。我已经自定义了登录页面,并且知道如何使用自定义页面布局使用我的网站上托管的 CSS 和代码来自定义编辑/忘记密码屏幕。
我遇到的问题是,注销时,我被重定向到/AzureADB2C/Account/SignOut。我想像修改登录页面一样修改 CSS,或者更改该 URL 以转到我的网站上托管的自定义控制器操作。
有谁知道管理该过程的方式/流程是什么?看起来很奇怪,他们将为“除了”注销过程之外的所有内容提供自定义布局。
作为解决方法,我发现我可以添加一个“重写选项”来处理
SignOut URL 并将其重写到我网站上的控制器。
但是,我不确定这是否是实现此目标的最佳方法
任务,它位于一个非常不起眼的 MSDN 页面上,但它确实有效。见下文:
// Inside Startup.cs
// Workaround for SignedOut URL error in MSFT code
RewriteOptions rewrite = new RewriteOptions().AddRedirect("AzureADB2C/Account/SignedOut","Account/SignedOut");
app.UseRewriter(rewrite);
如果你看一下源代码 https://github.com/aspnet/AspNetCore/blob/master/src/Azure/AzureAD/Authentication.AzureADB2C.UI/src/Areas/AzureADB2C/Controllers/AccountController.cs从 Microsoft.AspNetCore.Authentication.AzureADB2C.UI nuget 包中的 AccountController 中,您可以看到回调Url 被硬编码为 (/AzureADB2C)/Account/SignedOut。
但没有要求必须使用该控制器。只需在您自己的控制器上调用您自己的 SignOut 操作即可。复制粘贴 AzureADB2C SignOut 操作中的代码,并将callbackUrl 更改为您自己的。
编辑 _LoginPartial.cshtml:删除 asp-area="AzureADB2C" 并使用您自己的 asp-controller 和 asp-action。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)