2011-11-29 110 views
9

我有一個網站,可以通過設計和客戶端偏好,使用HTTP或HTTPS提供服務。客戶公司簡單地選擇是否使用http://或https://鏈接到我們的網站,其餘部分由IIS完成。功能正在添加到處理敏感信息的頁面,該信息只能通過SSL查看。客戶已同意在不使用HTTPS連接時應在此頁面上禁用此附加功能。如何檢查當前頁面是否在ASP.Net中使用SSL?

在Page_Load事件中,我想添加一個IF語句,該語句檢查當前是否通過HTTPS查看頁面,以顯示或禁用此可選功能。我大概可以讀取URL來查看它是以https://開頭的,但擔心這種方法是不安全的。

是否有可以在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(或更高版本)並計劃通過HTTP連接將到達您的頁面的請求重定向到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

相關問題