gpt4 book ai didi

.net - 使用 .Net Core Web Api 中的 Azure B2C 处理密码重置

转载 作者:行者123 更新时间:2023-12-03 00:10:14 25 4
gpt4 key购买 nike

我正在构建一个 Web API,允许用户使用 Azure B2C 登录或注册。我正在使用注册或登录政策,它会向我显示“忘记密码?”关联。单击此链接会显示 access_denied,错误描述为 AADB2C90118

如何在我的 Web API 中处理此错误?

注意:我正在使用 customized authentication UI用于登录/注册表单。

最佳答案

看看wingtips sample .

请注意,这主要表明您的应用程序需要在发生此错误时进行重定向。不确定您希望 API 扮演什么角色。

具体查找您提到的错误代码AADB2C90118: https://github.com/Azure-Samples/active-directory-b2c-advanced-policies/search?utf8=%E2%9C%93&q=AADB2C90118&type=

处理重置的 Controller 操作:

https://github.com/Azure-Samples/active-directory-b2c-advanced-policies/blob/master/wingtipgamesb2c/src/WingTipIdentityWebApplication/Api/Controllers/AccountController.cs#L252

从那里获取的一些代码:

 options = new OpenIdConnectAuthenticationOptions
{
Notifications = new OpenIdConnectAuthenticationNotifications()
{
AuthenticationFailed = context =>
{
context.HandleResponse();

if (context.ProtocolMessage.Error == "access_denied" && context.ProtocolMessage.ErrorDescription.StartsWith("AADB2C90118"))
{
context.Response.Redirect("/Account/ResetPassword");
}

还有

        var openIdConnectAuthenticationOptions = new OpenIdConnectOptions
{
[...]
Events = new OpenIdConnectEvents
{

OnRemoteFailure = context =>
{
[...]
// Handle the error that is raised when a user has requested to recover a password.
if (!string.IsNullOrEmpty(context.Failure.Message) &&
context.Failure.Message.Contains("access_denied") &&
context.Failure.Message.Contains("AADB2C90118"))
{
context.Response.Redirect($"/Account/RecoverPassword?ReturnUrl={context.HttpContext.Items["redirect_uri"]}");
context.HandleResponse();
}

关于.net - 使用 .Net Core Web Api 中的 Azure B2C 处理密码重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48893077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com