ASP.NET 페이지에서 프로그래밍 방식으로 401 오류를 생성하는 방법

StackOverflow https://stackoverflow.com/questions/217678

  •  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();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top