.net core 使用Azure B2C和Microsoft.Identity.Web AddSignIn方法使用dotnet core Razor页面捕获注册事件

.net core 使用Azure B2C和Microsoft.Identity.Web AddSignIn方法使用dotnet core Razor页面捕获注册事件,.net-core,azure-ad-b2c,razor-pages,.net Core,Azure Ad B2c,Razor Pages,我需要捕获注册活动(登录/注销),以便将用户连接到数据库中的用户,以实现记录级安全。我正在使用dotnet core 3.1、razor pages和Azure b2c(Microsoft.Identity.Web),在理解如何连接这些事件时遇到困难。我努力让B2C工作,因为似乎有很多变化,但我现在有注册工作。这是我的创业计划,看起来像这样: public void ConfigureServices(IServiceCollection services) {

我需要捕获注册活动(登录/注销),以便将用户连接到数据库中的用户,以实现记录级安全。我正在使用dotnet core 3.1、razor pages和Azure b2c(Microsoft.Identity.Web),在理解如何连接这些事件时遇到困难。我努力让B2C工作,因为似乎有很多变化,但我现在有注册工作。这是我的创业计划,看起来像这样:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSignIn(Configuration, "AzureAdB2C");

        services.AddRazorPages()
                .AddMicrosoftIdentityUI();
    }
services.Configure<OpenIdConnectOptions>(AzureADB2CDefaults.OpenIdScheme, options =>
    options.Events.OnTicketReceived = B2CExtensions.OnTicketReceivedCallback
);
我在这篇文章中引用了连接到options.Events.OnCreatingTicket的OnPostconfirmationSync,方法如下:

services.AddAuthentication().AddGoogle(options =>
{
    ...

    options.Events.OnCreatingTicket = ctx =>
    {
        List<AuthenticationToken> tokens = ctx.Properties.GetTokens().ToList(); 

        tokens.Add(new AuthenticationToken()
        {
            Name = "TicketCreated", 
            Value = DateTime.UtcNow.ToString()
        });

        ctx.Properties.StoreTokens(tokens);

        return Task.CompletedTask;
    };
});
考虑到最近的所有变化,仅仅运行身份验证是一个小小的挑战,因此我想在我所做的工作和似乎是向前发展的新方式(Microsoft.Identity.Web的AddSignIn方法)的基础上继续前进。任何帮助都将不胜感激

dotnet new webapp2 --auth IndividualB2C