ASP.NET 페이지에서 프로그래밍 방식으로 401 오류를 생성하는 방법
-
03-07-2019 - |
문제
보시다시피 이것은 비 웹 개발자의 질문입니다. 특정 상황에서 코드에서 401 오류를 생성 할 수있는 ASPX 페이지를 갖고 싶습니다. 이상적으로는 IIS 표준 페이지를 표시합니다.
해결책
세트 응답 .Statuscode 그런 다음 - 실행을 중지 해야하는 경우 - 전화 응답 ().
다른 팁
Response.StatusCode = 401;
Response.End();
나는 여전히 선호한다고 생각합니다.
throw new HttpException(401, "Auth Failed")
나는 생각하지 않는다 Response.StatusCode
메소드는 web.config 파일에 정의 된 사용자 정의 오류를 트리거합니다.
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="401" redirect="AuthFailed.htm" />
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
새로운 예외를 던지면 사용자 정의 오류가 발생합니다.
또한, 당신은 엘마 또는 무언가, 나는 생각하지 않습니다 Response.StatusCode
메소드도 거기에 기록됩니다.
메모: 이제 이상적으로는 표준 IIS 오류 페이지를 보여 주어야한다는 질문이 있습니다. 분명히 사용자 정의 오류 페이지는입니다 원하지 않습니다. 나는 그것을 사용할 것이다 Response.StatusCode
이 경우 방법.
다음에 따라 다음을 사용할 수 있어야합니다. MSDN.
Throw New HttpException(401, "Auth Failed")
편집하다 다른 응답을 본 후 상태 코드를 설정하는 것이 더 적절합니다.
하나의 추가 의견.
페이지의 일부가 이미 출력 버퍼에 기록 된 경우 버퍼링 된 컨텐츠를 지우거나 페이지가 올바르게 나타나지 않을 수 있습니다.
이것은 템플릿 환경에있을 가능성이 높습니다. 예 : 마스터 페이지 ...
Response.ClearContent();
Response.StatusCode = 401;
Response.End();
제휴하지 않습니다 StackOverflow