Azure AD B2C-用户登录时的调用功能

时间:2018-08-02 08:12:37

标签: azure-ad-b2c asp.net-core-2.1

我有一个MVC Core 2.1应用程序,并且正在使用Azure AD B2C(2.1.1)作为身份提供程序。

我想在用户登录和注销时调用一个函数,并且猜测我需要将其放入中间件中。

在以前的AD B2C版本中,有一个功能:

app.UseOpenIdConnectAuthentication(options);

具有使通知功能可用的选项:

Notifications = new OpenIdConnectAuthenticationNotifications
{
    AuthenticationFailed = this.AuthenticationFailed,
    RedirectToIdentityProvider = this.OnRedirectToIdentityProvider
}

app.UseOpenIdConnectAuthentication(options);函数现在已标记为过时。

我可以这样调用中间件:

app.Use((context, next) =>
{
    if(/*context handler referrer includes "B2C_1_SignUpPolicy"*/)
    {
        // User has signed-in
    }
    return next.Invoke();
}

…,但这会为每个请求调用,并且不能适应在用户注销时也调用一个函数。

那我应该设置app.UseAuthentication();版本的通知吗?

1 个答案:

答案 0 :(得分:0)

我已经在GitHub为ASP.NET Core 2.1 Web应用程序创建了一个代码示例,该示例使用Azure AD B2C的ASP.NET Core 2.1身份验证中间件针对Azure AD B2C对最终用户进行身份验证,并获取了使用MSAL.NET访问令牌,并使用此访问令牌访问Web API。

它通过handling the OpenIdConnectOptions.Events.OnAuthorizationCodeReceived event获取访问令牌。

您也许可以开发类似的代码来处理另一个OpenIdConnectOptions.Events事件。