在一個方法中,我需要知道響應是否在Http或Https中以重定向響應或創建BinaryWrite,但我只有一個HttpResponse參數。有沒有辦法知道HttpResponse是否在Https中?
任何人都知道是否有可能使用HttpResponse知道?
謝謝。
編輯:
我想知道是否有可能知道,如果一個HttpResponse對象是HTTP或HTTPS,因爲我喜歡,如果可以不使用HttpContext.Current.Request。
在一個方法中,我需要知道響應是否在Http或Https中以重定向響應或創建BinaryWrite,但我只有一個HttpResponse參數。有沒有辦法知道HttpResponse是否在Https中?
任何人都知道是否有可能使用HttpResponse知道?
謝謝。
編輯:
我想知道是否有可能知道,如果一個HttpResponse對象是HTTP或HTTPS,因爲我喜歡,如果可以不使用HttpContext.Current.Request。
我不這麼認爲。你可以從HttpRequest中找到,但是響應只是返回與請求有關的數據流。
這應該給你你需要的東西;
System.Uri currentUrl = System.Web.HttpContext.Current.Request.Url;
if (!currentUrl.Scheme.Equals(Uri.UriSchemeHttps, stringComparison.CurrentCultureIgnoreCase))
{
//Do something here
}
這是不可能的提取從HttpResponse對象這一信息,因爲這是將被髮送回向客戶端,在該請求可能是從請求相同的通信協議。您將需要使用Request對象來檢查SSL連接。
有HttpRequest.IsSecureConnection,但如果可能,我寧願不要使用HttpContext.Current.Request。 –
避免'HttpContext.Current.Request'的原因是什麼? – bluevector
只是要避免修改大量的代碼。我知道這是一個糟糕的理由。但是你讓我覺得我沒有嘗試在我的方法中直接使用HttpContext.Current.Request。 –
HttpRequest.IsSecureConnection屬性將做的工作看MS鏈路上的例子http://msdn.microsoft.com/en-us/library/system.web.httprequest.issecureconnection(v=vs.110).aspx
如果您正在使用IIS 7+,爲什麼不走HTTP的護理 - > HTTPS與重寫功能,而不是重定向。 ..這將保持你的代碼很好,很幸福不知道這個細節。 – bluevector
您是否正在運行ASP.Net服務器端代碼? – SLaks
嘗試改寫您的問題 - 很難說這是什麼... –