0

Windows 인증을 사용하는 직장에서 내부 용으로 웹 응용 프로그램을 작성했습니다. 신임장. 설정 한 광고 그룹에서 사용자 이름을 찾을 수없는 경우 보호 된 페이지의 Page_PreInit에서 호출 한 인증 메소드가 401 오류를 발생시킵니다.ASP.NET에서 사용자 지정 HTTP 401 인증되지 않은 페이지 강제로

나는 Earlz의 CustomErrorsFixer를 Throwing an HttpException always sends back HTTP 500 error?에서 구현했는데 나는 또한 500s 만 되찾았습니다. 이제 내 사용자 정의 오류 페이지가 작동하는 중입니다.

Visual Studio 개발 서버에서 로컬로 개발하면서 액세스 권한이 없으면 바로 401 오류 페이지로 이동한다는 것을 알았습니다. 하나! IIS 서버에 사이트를 게시 할 때 사용자에게 액세스 권한이 없으면 Windows 사용자 이름/암호 프롬프트 (XP의 경우 못생긴)이 표시됩니다. 이는 다른 도메인에 로그온 한 사용자에게 올바른 자격 증명을 입력 할 수있는 기회를 제공하기 때문에 실제로는 매우 편리합니다. 이 단계에서

, 사용자가 또는 탈출 취소에 도달하면 암호를 입력하라는 메시지가 나오면, 그들 어떻게 액세스를 요청 가야 알려줍니다 사용자 정의 401 페이지로 이동합니다. 그러나 잘못된 도메인을 기본값으로 사용하는 잘못된 사용자 이름과 암호를 입력하려고하면 기본 IIS 401 페이지으로 표시됩니다. 나는이를 피하고 싶습니다. 세 번째 시나리오 - 올바른 자격 증명을 입력하면 세 번 묻고 사용자 지정 오류 페이지가 표시됩니다.

그래서 사용자는 사용자 지정 401 페이지가 "인증"되어 있으면 표준 401 페이지를보고 그렇지 않은 경우 표준 401 페이지를 봅니다.

그러나 대부분의 사람들은 사용자 이름/암호 상자를 입력하면 도메인이없는 사용자 이름/암호를 입력한다는 것을 알았습니다.이 경우 도메인이 잘못되어 결국 비 사용자 지정 IIS 401 페이지 . 아무도 내가 이것을 해결할 수있는 방법을 알고 있습니까? 사람들이 액세스를 요청해야하는 그룹을보기 위해 맞춤 401 페이지를보아야하기 때문에 매우 귀찮습니다!

중요한 경우, 우리가 사용하는 브라우저는 XP에서는 IE8, Windows 7에서는 IE9입니다. 코드를 올리면 알려주십시오.

답변

2

IIS7은 기본적으로 몇 가지 다른 HTTP 상태 코드와 함께 401을 가로 챕니다.

이 시도 :

<configuration> 
    <system.webServer> 
    <httpErrors existingResponse="PassThrough" /> 
    </system.webServer> 
</configuration> 
+0

대단히 감사합니다 당신의 제안에 대해. 나는 이것과 Response.TrySkipIisCustomErrors를 시도했지만 나도 두려워하지 않았다. IIS에 서버 전체를 변경하는 권한이 없으므로 시도 할 수있는 것이 있습니까? – Chris

+0

죄송합니다. 제가 개인적으로 알고있는 유일한 설정입니다. 보통 이것은 문제입니다. – JCab

관련 문제