2011-11-29 2 views
9

디자인 및 클라이언트 환경 설정에서 HTTP 또는 HTTPS를 사용하여 제공 할 수있는 사이트가 있습니다. 클라이언트 회사는 단순히 http : // 또는 https : //를 사용하여 사이트에 연결할지 여부를 선택하고 IIS가 나머지를 수행합니다. SSL을 통해서만 볼 수있는 중요한 정보를 다루는 페이지에 기능이 추가되고 있습니다. 클라이언트는 HTTPS 연결을 사용하지 않을 때이 추가 기능을이 페이지에서 비활성화해야한다는 점에 동의했습니다.ASP.Net에서 현재 페이지가 SSL을 사용하고 있는지 어떻게 확인합니까?

Page_Load 이벤트에서이 선택적 기능을 표시하거나 비활성화하기 위해 페이지가 HTTPS를 통해 현재보고 있는지 확인하는 IF 문을 추가하고 싶습니다. https : //로 시작하는지 확인하기 위해 URL을 읽을 수는 있지만 접근 방법이 안전하지 않다고 걱정할 수 있습니다.

Page_Load 이벤트 중에 HTTPS를 테스트하기 위해 확인할 수있는 속성이 있습니까?

답변

24

당신은 Request.IsSecureConnection을 찾고 있습니다.

+0

감사합니다. SLaks! – David

+0

그러나로드 균형 조정 서버 환경에서 작동하지 않습니다. 이 게시물을 확인하십시오 http://stackoverflow.com/questions/998397/why-does-request-issecureconnection-return-false-when-true-is-expected. 우리는 똑같은 문제에 직면 해있다. –

1

IIS 7 이상을 사용 중이고 페이지에 도착하는 요청을 HTTPS 연결을 통해 HTTPS 연결로 리디렉션하려는 경우 IIS URL Rewrite Module을 사용해보십시오.

코드를 작성하는 대신 솔루션을 구성 할 수 있습니다. 예를 들어 http://my.host.com/my-secure-page.aspx과 같은 URL을 사용하고 https://my.host.com/my-secure-page.aspx으로 리디렉션하는 리디렉션 규칙을 구성 할 수 있습니다.

이 모듈을 사용하면 훨씬 더 많은 것을 할 수 있으며 그 아름다움은 애플리케이션 코드를 건드리지 않고도 할 수 있다는 것입니다.

자세한 내용은 Redirect HTTP to HTTPS with IIS 7을 참조하십시오.

관련 문제