在令牌验证期间在 OnMessageReceived 中注入依赖项

问题描述 投票:0回答:1

在 OnMessageReceived 方法中验证承载令牌的过程中,我想访问我的一项服务。我可以手动创建它的实例,但我想使用内置的依赖项注入机制。我怎样才能做到这一点?我无法通过提供的 TokenValidatedContext 找到任何合适的方法。

.net-core dependency-injection .net-7.0 bearer-token
1个回答
0
投票

你可以试试这个:

public static IServiceCollection AddJwtTokenAuthentication(this 
   IServiceCollection services, IConfiguration configuration)
{
      services.Configure<JwtConfig> 
   (configuration.GetSection("JWTSettings"));
  services.AddAuthentication(x =>
   {
      x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
      x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;                
  })
   .AddJwtBearer(x =>
                          {

 x.Events = new JwtBearerEvents()
            {

             OnMessageReceived = c =>
             {
               var sp = services.BuildServiceProvider();
               var fooService = sp.GetService<IFooService>();
               return Task.CompletedTask;
             }
           }
© www.soinside.com 2019 - 2024. All rights reserved.