Azure AD B2C与Restful API集成

时间:2018-05-18 19:59:46

标签: azure-ad-b2c identity-experience-framework

所以,我按照指定的here进行了演练。

以下是流程:

用户在SigInSignUp策略页面(由Azure AD B2C提供)上输入用户名/密码,并重定向到我编写的ASP.NET Web API以检查某些业务逻辑。

此时,我想根据作为输出声明的一部分返回的标志重定向到不同的URL。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

  

我想根据作为输出声明的一部分返回的标志重定向到不同的URL。

注册OnTicketReceived

builder.AddOpenIdConnect(options => {
    options.Events = new OpenIdConnectEvents {OnTicketReceived = OnTicketReceived };
});

使用事件处理程序对响应执行某些操作,例如重定向,或者设置稍后要读取的标志。

private Task OnTicketReceived(TicketReceivedContext context)
{
    // set a flag for later. Maybe middleware?
    context.HttpContext.Items["DoSomething"] = true;

    // Or just handle the response completely

    if(context.Principal.HasClaim(claim => ...predicate about the claim... ))
    {
        context.Response.Clear();
        context.Response.Headers.Add("Location", "http://wherever.you.want.com");
        // tell the OpenIdConnect middleware we got this
        context.HandleResponse();
    }
    Debug.WriteLine(nameof(OnTicketReceived));
    //context.Principal = TransformClaims(context, context.Principal);
    return Task.CompletedTask;
}