ASP.NET Core Identity에서 인증 오류시 401 반환
3986 단어 .NETCoreASP.NET_Core
다만, 여러가지 모습도 있으므로 이번은 인증 에러시의 이야기를 합니다.
401을 반환하면 302가 반환됩니다.
죄송합니다. 일본어가 이상합니다.
아니고 있는 그대로 말하면 이렇게 됩니다.
예를 들어 단순히 DB로부터 전건 취득만의 API로, 인증되어 있지 않은 유저라면 401을 돌려주는 API를 써 보겠습니다.
[Route("api/projects")]
public class ProjectsController : Controller
{
private readonly DatabaseContext db;
public ProjectsController(DatabaseContext db)
{
this.db = db;
}
[Authorize]
[HttpGet]
public async Task<IEnumerable<Project>> GetProjects()
{
return await db.Projects.ToListAsync();
}
}
이제 인증되지 않은 클라이언트에서 401이 될 것이라고 생각하십니까? 하지만 실제로는 302(Found)가 돌아옵니다.
호라아(사망)
Identity씨 왜 이런 일을 하는 거야?
이것은 Identity의 사양으로, 즉 인증되지 않은 사람은 로그인 페이지까지 날아 갑시다 ~라는 것을 해주고 있습니다. Header에 붙어 있는 URL은 디폴트의 것으로, 대략의 시스템은 이 URL 날면 로그인 화면 갈 수 있는 것.
MVC를 사용하는 사람은 괜찮을지도 모르지만 WebAPI로 사용하고 싶은 사람들에게는 성가신 천만입니다.
401로 만들기 위한 어리석은
Identity 인증에 쿠키를 사용하고 있는 경우에 이런 거동이 되는 것 같습니다.
Startup.cspublic void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseIdentity();
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AutomaticChallenge = false
});
}
AutomaticChallenge
를 false로 설정하면 리디렉션이 사라집니다.
swagger로 액세스하면 401이 반환됩니다.
테스트 코드로 이동하면 InvalidOperationException
예외가 발생합니다.
보통 상태 코드 401의 응답으로 좋지만 ....
Reference
이 문제에 관하여(ASP.NET Core Identity에서 인증 오류시 401 반환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuluna/items/9d801500e0566678bac4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[Route("api/projects")]
public class ProjectsController : Controller
{
private readonly DatabaseContext db;
public ProjectsController(DatabaseContext db)
{
this.db = db;
}
[Authorize]
[HttpGet]
public async Task<IEnumerable<Project>> GetProjects()
{
return await db.Projects.ToListAsync();
}
}
이것은 Identity의 사양으로, 즉 인증되지 않은 사람은 로그인 페이지까지 날아 갑시다 ~라는 것을 해주고 있습니다. Header에 붙어 있는 URL은 디폴트의 것으로, 대략의 시스템은 이 URL 날면 로그인 화면 갈 수 있는 것.
MVC를 사용하는 사람은 괜찮을지도 모르지만 WebAPI로 사용하고 싶은 사람들에게는 성가신 천만입니다.
401로 만들기 위한 어리석은
Identity 인증에 쿠키를 사용하고 있는 경우에 이런 거동이 되는 것 같습니다.
Startup.cspublic void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseIdentity();
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AutomaticChallenge = false
});
}
AutomaticChallenge
를 false로 설정하면 리디렉션이 사라집니다.
swagger로 액세스하면 401이 반환됩니다.
테스트 코드로 이동하면 InvalidOperationException
예외가 발생합니다.
보통 상태 코드 401의 응답으로 좋지만 ....
Reference
이 문제에 관하여(ASP.NET Core Identity에서 인증 오류시 401 반환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuluna/items/9d801500e0566678bac4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseIdentity();
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AutomaticChallenge = false
});
}
Reference
이 문제에 관하여(ASP.NET Core Identity에서 인증 오류시 401 반환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kuluna/items/9d801500e0566678bac4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)