爲什麼HttpContext.Current.Request.Url.Host比在Web瀏覽器中使用的URL返回不同的URL?例如,當在瀏覽器中輸入「www.someurl.com」時,HttpContext.Current.Request.Url.Host變量等於「www.someotherurl.com」。HttpContext.Current.Request.Url.Host的來源在哪裏?
2
A
回答
4
HttpContext.Current.Request.Url.Host
在於ASP.net應用程序接收主機頭的內容。 (有關HTTP標頭的更多信息,請參閱http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html,例如Host
)。
通常認爲ASP.NET看到頭與由瀏覽器發送的Host
報頭。但是,如果軟件或硬件位於瀏覽器和ASP.net代碼之間,並且正在重寫頭文件,它們可能不匹配。
例如,大規模預算託管例如GoDaddy做到這一點,使他們能夠支持單個IIS網站的多個頂級域名,甚至對他們的便宜的託管計劃。 GoDaddy不會創建單獨的IIS網站(這會增加服務器負載並因此增加成本),而是將http://secondsite.com/的請求重新映射到「主要」託管站點上的虛擬目錄,例如, http://firstsite.com/secondsite)。他們將改變主機:標題以及URL。
順便說一句,你可以很容易地驗證這是什麼傾倒的HTTP Request Headers您的應用程序正在接收的內容發生。
無論如何,如果您想弄清楚誰在更改Host頭部,請先從託管您的Web應用的人員(或負責您的負載平衡器和/或反向代理的團隊)開始,因爲他們是可能是負責重寫你的主機頭的人。
相關問題
- 1. org.classpath.icedtea.pulseaudio。*的來源在哪裏?
- 2. mysqlclient.lib的來源在哪裏?
- 3. fileuploader.swf的來源在哪裏?
- 4. 結果類型的來源在哪裏
- 5. 精靈的來源在哪裏?
- 6. EF 6.1.3的來源在哪裏?
- 7. phantomjs 1.9.19的來源在哪裏?
- 8. 網站腳本來源在哪裏?
- 9. 放在哪裏來源:= 65001代碼
- 10. ActiveDirectoryMembershipProvider源在哪裏
- 11. EF中的資源Template_GeneratedCodeCommentLine1來自哪裏?
- 12. 資源的ID在哪裏?
- 13. IValueConverter.Convert從哪裏來源CultureInfo參數?
- 14. 這個$資源變量來自哪裏?
- 15. iText源代碼在哪裏?
- 16. libOAuth.a源代碼在哪裏?
- 17. apache2源安裝在哪裏
- 18. 放在哪裏的javadoc,罐子和來源在Eclipse
- 19. 哪裏來的cookie?
- 20. 資源編輯器中的Dll資源:它們來自哪裏?
- 21. rails-2.3.5和rack-1.0.1的來源在哪裏?
- 22. DateField:在哪裏可以找到setValue函數的來源
- 23. 材料2示例sheert的來源在哪裏?
- 24. git在哪裏存儲有關存儲庫的來源信息
- 25. 在哪裏可以下載呼啦的來源?
- 26. jsf-impl.jar 1.1和jsf-api.jar 1.1位置的來源在哪裏?
- 27. Linux中fork()調用的來源在哪裏?
- 28. 我在哪裏可以找到Android方法的來源?
- 29. 我在哪裏可以找到System.Web.Optimization的來源?
- 30. 在哪裏可以找到dbpedia數據的來源
很好,有什麼不同呢?它是否像你要求http://www.cnn.com但Url.Host顯示「www.disney.com」還是在那裏有一些合理的模式? – 2010-04-28 18:24:23
他們很相似。比較接近的例子是,在瀏覽器中輸入的URL是「www.mysite.net」,但Url.Host變量返回「www.mysitexy.net」。它只是主機名的最後兩個字母,「xy」,正在被添加。我相信它可能只與防火牆內部的mysitexy和防火牆內部和外部的mysite有關。 – 2010-04-28 18:38:17