HttpHeaders.TryAddWithoutValidation 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳一個值,表示是否在未驗證標頭值的情況下,將新的標頭及其值加入 HttpHeaders 集合。
多載
| 名稱 | Description |
|---|---|
| TryAddWithoutValidation(String, IEnumerable<String>) |
回傳一個值,表示指定的標頭及其值是否在未驗證所提供資訊的情況下被加入 HttpHeaders 集合。 |
| TryAddWithoutValidation(String, String) |
回傳一個值,指示指定的標頭及其值是否在未驗證所提供資訊的情況下加入 HttpHeaders 集合。 |
TryAddWithoutValidation(String, IEnumerable<String>)
回傳一個值,表示指定的標頭及其值是否在未驗證所提供資訊的情況下被加入 HttpHeaders 集合。
public:
bool TryAddWithoutValidation(System::String ^ name, System::Collections::Generic::IEnumerable<System::String ^> ^ values);
public bool TryAddWithoutValidation(string name, System.Collections.Generic.IEnumerable<string> values);
public bool TryAddWithoutValidation(string name, System.Collections.Generic.IEnumerable<string?> values);
member this.TryAddWithoutValidation : string * seq<string> -> bool
Public Function TryAddWithoutValidation (name As String, values As IEnumerable(Of String)) As Boolean
參數
- name
- String
要加入收藏的標頭。
- values
- IEnumerable<String>
標頭的值。
傳回
true 若指定的標頭 name 和 values 可以加入集合;否則 false。
備註
此方法執行標頭名稱驗證,對於無效名稱則回 false 傳。 標頭名稱被強制為有效的 HTTP 標記,標記定義為集合中 "!#$%&'*+-.^_`|~" 任何符合 RFC9110 定義的 ASCII 字母、數字或符號集合。 標頭名稱中不允許使用非 ASCII 字元。
此方法不會執行任何標頭值驗證。 透過此方法新增的值被假設為可信,其他應用程式邏輯 HttpClient如 ,若未妥善形成,可能會出現異常行為。
在列舉集合或查詢特定標頭名稱時,即使呼叫者並未使用 NonValidated 集合的檢視,也可能觀察到未經驗證的新增值。
謹慎
此方法絕不可用於不受信任的值,除非其有其他充分驗證。
什麼才算是「充分」的驗證,會因使用情境而異。 至少,為了協定正確性,禁止使用換行字元,例如。 if (value.ContainsAny('\r', '\n', '\0')) throw ... 此驗證應確保伺服器應用程式以與客戶端應用程式相同的方式看到數值,且伺服器需負責妥善淨化自身輸入。
為了防範請求走私等攻擊,強烈建議來電者確認這些值不含換行字元。
適用於
TryAddWithoutValidation(String, String)
回傳一個值,指示指定的標頭及其值是否在未驗證所提供資訊的情況下加入 HttpHeaders 集合。
public:
bool TryAddWithoutValidation(System::String ^ name, System::String ^ value);
public bool TryAddWithoutValidation(string name, string value);
public bool TryAddWithoutValidation(string name, string? value);
member this.TryAddWithoutValidation : string * string -> bool
Public Function TryAddWithoutValidation (name As String, value As String) As Boolean
參數
- name
- String
要加入收藏的標頭。
- value
- String
標頭的內容。
傳回
true 若指定的標頭 name 和 value 可以加入集合;否則 false。
備註
此方法執行標頭名稱驗證,對於無效名稱則回 false 傳。 標頭名稱被強制為有效的 HTTP 標記,標記定義為集合中 "!#$%&'*+-.^_`|~" 任何符合 RFC9110 定義的 ASCII 字母、數字或符號集合。 標頭名稱中不允許使用非 ASCII 字元。
此方法不會執行任何標頭值驗證。 透過此方法新增的值被假設為可信,其他應用程式邏輯 HttpClient如 ,若未妥善形成,可能會出現異常行為。
在列舉集合或查詢特定標頭名稱時,即使呼叫者並未使用 NonValidated 集合的檢視,也可能觀察到未經驗證的新增值。
謹慎
此方法絕不可用於不受信任的值,除非其有其他充分驗證。
什麼才算是「充分」的驗證,會因使用情境而異。 至少,為了協定正確性,禁止使用換行字元,例如。 if (value.ContainsAny('\r', '\n', '\0')) throw ... 此驗證應確保伺服器應用程式以與客戶端應用程式相同的方式看到數值,且伺服器需負責妥善淨化自身輸入。
為了防範請求走私等攻擊,強烈建議來電者確認這些值不含換行字元。