【问题标题】:How to get logger/configuration into a static class for OnTicketReceived event of AAD B2C using Razor Pages and dotnetcore 3.1如何使用 Razor Pages 和 dotnetcore 3.1 将记录器/配置放入 AAD B2C 的 OnTicketReceived 事件的静态类中
【发布时间】:2021-01-20 09:30:25
【问题描述】:

我在 dotnet core 3.1 上的 Razor Pages Web 应用程序中使用 Azure B2C,并且我想在添加或更改用户时将信息记录到我的数据库中。我还想确认用户在登录时是否在数据库中,如果不在则添加。现在我只是想让“新用户”运行。鉴于事件具有特定签名,我不知道如何将日志记录和配置添加到我的静态类中。

    public UserRepository(ILogger<UserRepository> logger, IConfiguration configuration)
    {
        _logger = logger;
        _configuration = configuration;
    }

我一直在关注this article 并且我已经阅读了this post 并实现了一个静态类:

    public async static Task<Task> OnTicketReceivedCallback(TicketReceivedContext context)
    {
        //OnTicketReceived
        //Check if user just completed signup flow
        List<Claim> claims = context.Principal.Claims.ToList();
        bool isNewUser = claims.FirstOrDefault(x => x.Type == "newUser") == null ? false : true;

        //If so, do what needs to be done
        if (isNewUser)
        {
            //This is where I am getting the error and don't know how to push the logger and configuration through the stack
            UserRepository repo = new UserRepository();

        }

        return Task.CompletedTask;
    }

在启动时被调用:

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


        services.Configure<OpenIdConnectOptions>(OpenIdConnectDefaults.AuthenticationScheme, options =>
            options.Events.OnTicketReceived = B2CExtensions.OnTicketReceivedCallback
        );

        services.AddRazorPages()
                .AddMicrosoftIdentityUI();
    }

【问题讨论】:

    标签: asp.net .net-core azure-ad-b2c razor-pages


    【解决方案1】:

    将 OnTicketReceivedCallback 类设为非静态并将其注册为单例。这样您就可以通过构造函数传递 ILogger。

    【讨论】:

      猜你喜欢
      • 2020-06-10
      • 1970-01-01
      • 2021-09-25
      • 2020-02-21
      • 1970-01-01
      • 2020-04-11
      • 2010-11-20
      • 2021-06-02
      • 2020-11-08
      相关资源
      最近更新 更多