.NET Framework에서 단위 테스트 및 종속성 주입 기능을 사용하여 해결하려는이 사용자 지정 권한 체계가 있습니다. 설정을 설명해 드리겠습니다..NET 핵심 사용자 지정 권한 종속성 주입
인터페이스 IStsHttpClient 및 클래스 StsHttpClient를 만들었습니다. 이 클래스는 & 토큰을 디코딩하는 내부 웹 서비스에 연결합니다. 이것은 정확히 1 개의 메소드 "DecodeToken (string token)"을 가지며 생성자는 매우 간단합니다. 이것은 DI에서로드 된 옵션 객체를 취합니다.
내 AuthorizationHandler는 이론적으로 IStsHttpClient를 사용하여 토큰을 호출하고 디코딩합니다. 내 질문은 온라인 예제를 기반으로 권한 부여 처리기를 올바르게 지정하거나 빌드하는 방법을 알지 못합니다 (아래 코드 참조). 여기
인증 코드 :
public class MyAuthorizationRequirement : AuthorizationHandler<MyAuthorizationRequirement >, IAuthorizationRequirement
{
const string Bearer = "Bearer ";
readonly IStsHttpClient _client;
public BuzzStsAuthorizationRequirement([FromServices]IStsHttpClient client)
{
_client = client;
}
protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, MyStsAuthorizationRequirement requirement)
{
/* remaining code omitted - but this will call IStsHttpClient.Decode() */
내 Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.Configure<StsHttpOptions>(Configuration.GetSection("StsConfigurationInfo"));
services.AddScoped<IStsHttpClient , StsHttpClient >();
services.AddAuthorization(options =>
{
options.AddPolicy("Authorize", policy =>
{
/* initialize this differently?? */
policy.AddRequirements(new MyStsAuthorizationRequirement(/* somethign is needed here?? */));
});
});
I 필요. –