나는 유용한 튜토리얼 here을 기반으로 주장 승인을 사용하는 MVC 응용 프로그램이 있습니다. 코드에서 나는 각각의 자원과 행동Asp.Net MVC HTTP 오류 401.0 - 무단으로
public class CustomAuthorisationManager : ClaimsAuthorizationManager
{
public override bool CheckAccess(AuthorizationContext context)
{
string resource = context.Resource.First().Value;
string action = context.Action.First().Value;
if (action == "Show" && resource == "Code")
{
bool livesInScotland = context.Principal.HasClaim(ClaimTypes.Country, "Scotland");
return livesInScotland;
}
return false;
}
}
에 대해 내 자신의 논리를 구현하는 ClaimsAuthorizationManager의 checkAccess 메소드를 오버라이드 (override) 그리고 모든 떨어져 checkAccess 메소드가 false를 리턴 할 때마다 내가 HTTP 오류 401.0를 얻을 수 있다는 사실, 잘 작동 - 권한, 어떤 내가 읽은 그대로는 IIS에서만 처리 할 수 있습니다. 내 질문은 어떻게 코드를 사용자 정의 오류 페이지를 표시하려면이 오류를 처리 할 수 있습니다. here 또는 here과 같은 여러 가지 솔루션을 보았지만 제대로 작동하지 못했습니다.
IHttpModule 솔루션을 사용해 보았지만 응용 프로그램이 모듈을 보지 못했습니다. MVC 내에서 사용할 수 있습니까? 두 번째 솔루션과 관련하여, ASP에서 처리하는 404 및 500 오류에 대해서만 언급하고 있지만, 알고있는 한 401은 IIS에 의해 해결됩니다 (http://patrickdesjardins.com/blog/ 참조). asp-net-mvc-http-error-401-0-unauthorized) – Bartosz
HttpModule은 MVC가 아닌 IIS 수준에서 단계를 밟습니다. 그러나 디버깅 할 때 응용 프로그램 디버거는 중단 점이 있으면 모듈로 들어갑니다. 문제가 있습니까? 우리는''에 모듈을 등록하고' '을 설정했습니다. 우리는 아무런 문제가 없었다. –
pepo