B2C - 在 url 中从 .net5 应用程序传递参数

B2C - pass parameter in url from .net5 application

我正在从我的 .net5 应用程序调用 b2c 自定义策略。我用来将用户从应用程序重定向到自定义策略屏幕的代码是:

var scheme = OpenIdConnectDefaults.AuthenticationScheme;
var properties = new AuthenticationProperties { RedirectUri = redirectUrl };
properties.Items["policy"] = "B2C_1A_xxxxxx;

return Challenge(properties, scheme);

我还想从我的应用程序传递一个值以在 B2C 屏幕上预填充输入。

我可以通过在自定义策略中使用 OAUTH-KV:KeyValueKey 从 url 参数中获取值。这样当我手动将 &KeyValueKey=KeyValueValue 添加到 url 时,我能够在相关输入中显示 KeyValueValue

但是,我无法更新应用程序中的 C# 代码,因此我无法生成包含参数值的 url。

您可以在启动时将此查询参数添加到您的 Open Id Connect 中间件中。 例如:

app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions()
{
    //.. 
    Events = new OpenIdConnectEvents
    {
        OnRedirectToIdentityProvider = context =>
        {
            context.ProtocolMessage.SetParameter("KeyValueKey", "KeyValueValue");

            return Task.FromResult(0);
        }
    }
    //.. 
});