簡體   English   中英

ASP.NET中的Request.Browser.Cookies屬性有多可靠?

[英]How reliable is the Request.Browser.Cookies property in ASP.NET?

Request.Browser.Cookies屬性( bool類型)屬性存儲客戶端瀏覽器是否支持cookie以及是否啟用cookie的信息。

Request.Browser.Cookies屬性的可靠性如何? 它保證是正確的嗎? 或者我應該在這個問題中實現Software Monkey建議的重定向技術嗎?

請注意:這不是“餅干可靠”的問題嗎? 這是一個問題:“用戶瀏覽器是否接受cookie可靠的信息?”

隨着修改后的問題,一個新的答案:

文檔屬性HttpBrowserCapabilitiesBase.Cookies說:

此屬性不表示當前是否在瀏覽器中啟用了cookie,只是瀏覽器是否支持cookie。

它似乎是基於用戶瀏覽器和服務器上的瀏覽器功能數據庫的檢測來設置的。 因此,只有在以下情況下,它才能可靠地告訴您瀏覽器是否能夠存儲cookie:

  1. 請求的用戶代理字符串是正確的。
  2. 瀏覽器位於數據庫中,數據庫對於瀏覽器是正確的。

如果用戶代理HTTP標頭被更改(例如,通過開發人員工具或代理),則條件#1將被破壞。 如果瀏覽器比數據庫新,或者數據庫中存在缺陷,則條件#2將被破壞。

tl; dr版本:無法保證,將此信息視為“盡力而為”。 當然,用戶可以禁用cookie(例如,“私密”瀏覽模式)。


對不同問題的原始答案:

如果你想依賴你在響應中發送的cookie總是回歸完全一樣,那么答案是:通常,但不要依賴於此。

可能的原因:

  • 客戶端腳本可以修改非HTTP的cookie(並且可以在本地注入該腳本)。
  • 瀏覽器錯誤。
  • 使用非瀏覽器發出不處理用戶cookie的請求(例如wget.exe )。
  • 修改請求或響應的代理。
  • 修改客戶端系統上的本地時鍾以導致cookie過期。
  • 用戶修改瀏覽器的cookie存儲。

我知道人們沒有得到你的問題的要點。 但您似乎對方法的可靠性存有疑慮。 我的意思是,我可以問“Request.QueryString是否可靠?它會返回請求URL中的所有參數嗎?” 答案是肯定的,除非你有一些與之相反的信息。 所以你有Request.Browser.Cookies不可靠的信息嗎? 據我所知。 您遇到過無法正常工作的情況嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM