2012-06-22 244 views
0

在一個方法中,我需要知道響應是否在Http或Https中以重定向響應或創建BinaryWrite,但我只有一個HttpResponse參數。有沒有辦法知道HttpResponse是否在Https中?

任何人都知道是否有可能使用HttpResponse知道?

謝謝。

編輯:

我想知道是否有可能知道,如果一個HttpResponse對象是HTTP或HTTPS,因爲我喜歡,如果可以不使用HttpContext.Current.Request。

+0

如果您正在使用IIS 7+,爲什麼不走HTTP的護理 - > HTTPS與重寫功能,而不是重定向。 ..這將保持你的代碼很好,很幸福不知道這個細節。 – bluevector

+0

您是否正在運行ASP.Net服務器端代碼? – SLaks

+2

嘗試改寫您的問題 - 很難說這是什麼... –

回答

0

我不這麼認爲。你可以從HttpRequest中找到,但是響應只是返回與請求有關的數據流。

0

這應該給你你需要的東西;

System.Uri currentUrl = System.Web.HttpContext.Current.Request.Url; 

if (!currentUrl.Scheme.Equals(Uri.UriSchemeHttps, stringComparison.CurrentCultureIgnoreCase)) 
{ 
    //Do something here 
} 

這是不可能的提取從HttpResponse對象這一信息,因爲這是將被髮送回客戶端,在該請求可能是從請求相同的通信協議。您將需要使用Request對象來檢查SSL連接。

+0

有HttpRequest.IsSecureConnection,但如果可能,我寧願不要使用HttpContext.Current.Request。 –

+0

避免'HttpContext.Current.Request'的原因是什麼? – bluevector

+0

只是要避免修改大量的代碼。我知道這是一個糟糕的理由。但是你讓我覺得我沒有嘗試在我的方法中直接使用HttpContext.Current.Request。 –

相關問題