반응형
MVC Core 모든 작업에 대해 전역 인증을 강제 / 설정하는 방법은 무엇입니까?
MVC Core의 모든 작업에 대해 전역 인증을 강제 / 설정하는 방법은 무엇입니까?
글로벌 필터를 등록하는 방법을 알고 있습니다. 예를 들면 다음과 같습니다.
Setup.cs
services.AddMvc(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
그리고 이것은 잘 작동하지만 Authorize에 대해 동일하게 추가 할 수 없습니다.
options.Filters.Add(new AuthorizeAttribute());
오류가 있습니다.
Cannot convert from 'Microsoft.AspNet.Authorization.AuthorizeAttribute()' to 'System.Type'
(방법 .Add()
은 IFilterMetadata
유형이 필요 합니다)
나는 비슷한 질문에서 이것이 MVC4-5에서 작동한다는 것을 알고 있습니다. 따라서 MVC Core에서 무언가 변경되어야합니다.
누군가 어떤 아이디어가 있습니까?
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
StartUp.cs의 ConfigureServices에 다음을 추가합니다. 이는 토큰 유효성 검사를위한 것이며 모든 호출이 토큰으로 확인되도록합니다.
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false
};
});
services.AddMvc(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})`
이것을 StartUp.cs의 Configure 메서드에 추가합니다.
app.UseAuthentication();
참고 : 필요하지 않은 경우 [AllowAnonymous]를 사용하십시오.
반응형
'programing' 카테고리의 다른 글
RecyclerView가 항목 배치를 완료 한시기를 아는 방법은 무엇입니까? (0) | 2021.01.14 |
---|---|
내 Git bash에 "MINGW64"가 나타나는 이유는 무엇입니까? (0) | 2021.01.14 |
각도 CLI를 사용하여 특정 버전의 각도 설치 (0) | 2021.01.14 |
레드-블랙 트리 (0) | 2021.01.14 |
mysql 테이블 열 기본값을 어떻게 변경합니까? (0) | 2021.01.14 |