2016-09-20 1 views
0

api 메소드에서 Authorize 속성을 사용할 때 사용자가 로그인 페이지로 보내지 않고 로그인 한 경우 웹 API에서 401을 반환하려고합니다. 이 문제를 해결하는 방법에 대한 몇 가지 아이디어를 보았지만 나에게 도움이되지는 못했습니다.양식 인증 응용 프로그램에서 웹 API에서 401 메시지를 반환

웹 API 5.2.3을 사용하고 있는데 response.SuppressFormsAuthenticationRedirect = true처럼 보이지 않습니다. 더 이상 작동하지 않습니다.

또한 HandleUnauthorizedRequest를 재정의하려했으나 여전히 로그인 페이지로 리디렉션됩니다. 도움을 주셔서 감사합니다.

+0

나는 마침내 해답을 시도하여 작동하게 그러나, 이것이 내가 내 시작 클래스의 services.AddIdentity 방법에서, 그 문제에 참석 얼마나입니다

config.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents() { OnRedirectToLogin = ctx => { if (ctx.Request.Path.StartsWithSegments("/api") && ctx.Response.StatusCode == 200) { ctx.Response.StatusCode = (int)HttpStatusCode.Unauthorized; } else { ctx.Response.Redirect(ctx.RedirectUri); } return Task.FromResult(0); } }; 

이 당신을 위해 작동하는지 알려줘 다시 여기 군. http://stackoverflow.com/questions/34880817/make-web-api-authentication-return-401-instead-of-redirect-to-login-page – user973671

답변

0

일반적으로 ASP.Net 코어로 작업하며 프레임 워크는 Web APi와 MVC 모두에 대해 동일한 컨트롤러 유형을 사용합니다.

+0

네, asp.net 코어를 사용하고 있지 않습니다. 이것은 MVC5 응용 프로그램입니다. 그래도 도와 ​​줘서 고마워! – user973671

관련 문제