cookie 및 jwt auth 구성표가있는 앱이 있습니다.asp.net core 2.0 특정 스키마로 승인
var authTokenSettings = configuration.GetSection(nameof(TokenProviderSettings)).Get<TokenProviderSettings>();
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddCookie(authSection.AuthenticationScheme, u =>
{
u.Cookie.Name = authSection.AuthCookieName;
u.LoginPath = new PathString(authSection.LoginPath);
u.AccessDeniedPath = "/Home/Index";
})
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options =>
{
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = authTokenSettings.Issuer,
ValidateAudience = true,
ValidAudience = authTokenSettings.Audience,
ValidateLifetime = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(authTokenSettings.Key)),
ValidateIssuerSigningKey = true,
};
});
가 지금은 다른 한편으로는 하나의 방법 및 JWT에 쿠키 방식을 사용합니다 :이 ConfigureServices
코드입니다. 적절한 속성을 추가했습니다.
([Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)])
그러나 이러한 속성은 무시되며 기본 구성표가 사용됩니다. 나는 기본 방식을 지정하지 않으면,이 예외가 :
System.InvalidOperationException : 없음 authenticationScheme 지정된 , 그리고 찾을 수 없습니다 DefaultChallengeScheme이 없었다.
코드에 어떤 문제가 있습니까?
특성이 무시된다는 것은 무엇을 의미합니까? Authorize 속성에서 스키마로 Jwt를 지정합니다.이 속성은 또한 사용자의 구성에 따라 기본값입니다. 물론 "기본"체계가 있습니다. - 자체적으로 문제를 해결할 수 없기 때문에 쿠키 인증을 자체적으로 사용할 수 없습니다. 기본 요청 방식으로 요청 요청을 전달하므로 config를 사용하면 Jwt 인증을 계속 실행할 수 있습니다. – poke
쿠키 인증이있는 app가 있으며 jwt를 2 가지 방법으로 추가합니다. 쿠키 인증 방식을 기본값으로 설정하면 jwt auth가 무시됩니다. – AlexK
정말 무시됩니까? 아니면 기본값대로 실행되는 것입니까? – CalC