Wstrzykiwanie zależności w programach obsługi wymagań w programie ASP.NET Core
Procedury obsługi autoryzacji muszą być zarejestrowane w kolekcji usług podczas konfigurowania przy użyciu wstrzykiwania zależności.
Załóżmy, że masz repozytorium reguł, które chcesz ocenić w programie obsługi autoryzacji i że repozytorium zostało zarejestrowane w kolekcji usług. Autoryzacja rozpoznaje i wprowadza to do konstruktora.
Aby na przykład użyć infrastruktury rejestrowania platformy .NET, wstrzyknąć ILoggerFactory do programu obsługi, jak pokazano w poniższym przykładzie:
public class SampleAuthorizationHandler : AuthorizationHandler<SampleRequirement>
{
private readonly ILogger _logger;
public SampleAuthorizationHandler(ILoggerFactory loggerFactory)
=> _logger = loggerFactory.CreateLogger(GetType().FullName);
protected override Task HandleRequirementAsync(
AuthorizationHandlerContext context, SampleRequirement requirement)
{
_logger.LogInformation("Inside my handler");
// ...
return Task.CompletedTask;
}
}
Poprzedni program obsługi można zarejestrować w dowolnym okresie istnienia usługi. Poniższy kod używa AddSingleton metody do zarejestrowania poprzedniej procedury obsługi:
builder.Services.AddSingleton<IAuthorizationHandler, SampleAuthorizationHandler>();
Wystąpienie programu obsługi jest tworzone podczas uruchamiania aplikacji, a di wprowadza zarejestrowane ILoggerFactory
do jego konstruktora.
Uwaga
Nie rejestruj procedur obsługi autoryzacji korzystających z programu Entity Framework (EF) jako pojedynczych dysków.
Procedury obsługi autoryzacji muszą być zarejestrowane w kolekcji usług podczas konfigurowania przy użyciu wstrzykiwania zależności.
Załóżmy, że masz repozytorium reguł, które chcesz ocenić w programie obsługi autoryzacji i że repozytorium zostało zarejestrowane w kolekcji usług. Autoryzacja rozpoznaje i wprowadza to do konstruktora.
Aby na przykład użyć infrastruktury rejestrowania platformy .NET, wstrzyknąć ILoggerFactory do programu obsługi, jak pokazano w poniższym przykładzie:
public class SampleAuthorizationHandler : AuthorizationHandler<SampleRequirement>
{
private readonly ILogger _logger;
public SampleAuthorizationHandler(ILoggerFactory loggerFactory)
=> _logger = loggerFactory.CreateLogger(GetType().FullName);
protected override Task HandleRequirementAsync(
AuthorizationHandlerContext context, SampleRequirement requirement)
{
_logger.LogInformation("Inside my handler");
// ...
return Task.CompletedTask;
}
}
Poprzedni program obsługi można zarejestrować w dowolnym okresie istnienia usługi. Poniższy kod używa AddSingleton metody do zarejestrowania poprzedniej procedury obsługi:
services.AddSingleton<IAuthorizationHandler, SampleAuthorizationHandler>();
Wystąpienie programu obsługi jest tworzone podczas uruchamiania aplikacji, a di wprowadza zarejestrowane ILoggerFactory
do jego konstruktora.
Uwaga
Nie rejestruj procedur obsługi autoryzacji korzystających z programu Entity Framework (EF) jako pojedynczych dysków.