爲什麼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. mysqlclient.lib的來源在哪裏?
- 2. org.classpath.icedtea.pulseaudio。*的來源在哪裏?
- 3. fileuploader.swf的來源在哪裏?
- 4. RequireHttpsAttribute的來源在哪裏?
- 5. phantomjs 1.9.19的來源在哪裏?
- 6. 結果類型的來源在哪裏
- 7. 網站腳本來源在哪裏?
- 8. ActiveDirectoryMembershipProvider源在哪裏
- 9. EF中的資源Template_GeneratedCodeCommentLine1來自哪裏?
- 10. IValueConverter.Convert從哪裏來源CultureInfo參數?
- 11. libOAuth.a源代碼在哪裏?
- 12. apache2源安裝在哪裏
- 13. 資源編輯器中的Dll資源:它們來自哪裏?
- 14. 哪裏來的cookie?
- 15. 在哪裏可以找到dbpedia數據的來源
- 16. ASP.NET MVC 2中內置顯示模板的來源在哪裏?
- 17. DateField:在哪裏可以找到setValue函數的來源
- 18. rails-2.3.5和rack-1.0.1的來源在哪裏?
- 19. 在哪裏可以下載呼啦的來源?
- 20. 材料2示例sheert的來源在哪裏?
- 21. git在哪裏存儲有關存儲庫的來源信息
- 22. Oracle DBCA在哪裏進來?
- 23. 設置HttpContext.Current.Request.Url.Host
- 24. Android adb的Windows源代碼在哪裏?
- 25. RippleDrawable的源代碼在哪裏? (Android L)
- 26. isnan的源代碼在哪裏?
- 27. PHP SPL庫的源代碼在哪裏?
- 28. Django源代碼中的Model.py在哪裏?
- 29. 我的資源文件在哪裏
- 30. F#3.1.2的源代碼在哪裏?
很好,有什麼不同呢?它是否像你要求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