我已經繼承了一堆包含硬編碼路徑的web應用程序的代碼。我一直試圖使用https://運行它。從.net中的HttpContext中檢測https?
除了檢測URL中的「https://」之外,還有更多帶內方法來檢測當前上下文是否爲https?
尋找類似:
System.Web.HttpContext.Current.Request.Url。 Protocol.ToString()
我已經繼承了一堆包含硬編碼路徑的web應用程序的代碼。我一直試圖使用https://運行它。從.net中的HttpContext中檢測https?
除了檢測URL中的「https://」之外,還有更多帶內方法來檢測當前上下文是否爲https?
尋找類似:
System.Web.HttpContext.Current.Request.Url。 Protocol.ToString()
您可以使用HttpContext.Current.Request.IsSecureConnection
的直接回答您的要求爲類似System.Web.HttpContext.Current.Request.Url.Protocol.ToString()
是System.Web.HttpContext.Current.Request.Url.Scheme
,但正如布蘭登說,在his answerHttpContext.Current.Request.IsSecureConnection
是檢測使用HTTPS方式作爲布爾值,可能更適合您在問題中給出的問題。
我使用此代碼自動重定向到HTTPS
If HttpContext.Current.Request.IsSecureConnection.Equals(False) Then
Response.Redirect("https://" + Request.ServerVariables("HTTP_HOST") & HttpContext.Current.Request.RawUrl)
End If
爲什麼downvote? – 2012-10-02 15:57:14
可能是「.Equals(False)」位。雖然它應該起作用,但用這種方式編寫代碼沒有任何意義。另外,你不應該在VB中使用+作爲字符串連接。 – 2012-12-18 22:07:29