分享方式


HttpHeaders.TryAddWithoutValidation 方法

定義

回傳一個值,表示是否在未驗證標頭值的情況下,將新的標頭及其值加入 HttpHeaders 集合。

多載

名稱 Description
TryAddWithoutValidation(String, IEnumerable<String>)

回傳一個值,表示指定的標頭及其值是否在未驗證所提供資訊的情況下被加入 HttpHeaders 集合。

TryAddWithoutValidation(String, String)

回傳一個值,指示指定的標頭及其值是否在未驗證所提供資訊的情況下加入 HttpHeaders 集合。

TryAddWithoutValidation(String, IEnumerable<String>)

來源:
HttpHeaders.cs
來源:
HttpHeaders.cs
來源:
HttpHeaders.cs
來源:
HttpHeaders.cs
來源:
HttpHeaders.cs

回傳一個值,表示指定的標頭及其值是否在未驗證所提供資訊的情況下被加入 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 若指定的標頭 namevalues 可以加入集合;否則 false

備註

此方法執行標頭名稱驗證,對於無效名稱則回 false 傳。 標頭名稱被強制為有效的 HTTP 標記,標記定義為集合中 "!#$%&'*+-.^_`|~" 任何符合 RFC9110 定義的 ASCII 字母、數字或符號集合。 標頭名稱中不允許使用非 ASCII 字元。

此方法不會執行任何標頭值驗證。 透過此方法新增的值被假設為可信,其他應用程式邏輯 HttpClient如 ,若未妥善形成,可能會出現異常行為。

在列舉集合或查詢特定標頭名稱時,即使呼叫者並未使用 NonValidated 集合的檢視,也可能觀察到未經驗證的新增值。

謹慎

此方法絕不可用於不受信任的值,除非其有其他充分驗證。

什麼才算是「充分」的驗證,會因使用情境而異。 至少,為了協定正確性,禁止使用換行字元,例如。 if (value.ContainsAny('\r', '\n', '\0')) throw ... 此驗證應確保伺服器應用程式以與客戶端應用程式相同的方式看到數值,且伺服器需負責妥善淨化自身輸入。

為了防範請求走私等攻擊,強烈建議來電者確認這些值不含換行字元。

適用於

TryAddWithoutValidation(String, String)

來源:
HttpHeaders.cs
來源:
HttpHeaders.cs
來源:
HttpHeaders.cs
來源:
HttpHeaders.cs
來源:
HttpHeaders.cs

回傳一個值,指示指定的標頭及其值是否在未驗證所提供資訊的情況下加入 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 若指定的標頭 namevalue 可以加入集合;否則 false

備註

此方法執行標頭名稱驗證,對於無效名稱則回 false 傳。 標頭名稱被強制為有效的 HTTP 標記,標記定義為集合中 "!#$%&'*+-.^_`|~" 任何符合 RFC9110 定義的 ASCII 字母、數字或符號集合。 標頭名稱中不允許使用非 ASCII 字元。

此方法不會執行任何標頭值驗證。 透過此方法新增的值被假設為可信,其他應用程式邏輯 HttpClient如 ,若未妥善形成,可能會出現異常行為。

在列舉集合或查詢特定標頭名稱時,即使呼叫者並未使用 NonValidated 集合的檢視,也可能觀察到未經驗證的新增值。

謹慎

此方法絕不可用於不受信任的值,除非其有其他充分驗證。

什麼才算是「充分」的驗證,會因使用情境而異。 至少,為了協定正確性,禁止使用換行字元,例如。 if (value.ContainsAny('\r', '\n', '\0')) throw ... 此驗證應確保伺服器應用程式以與客戶端應用程式相同的方式看到數值,且伺服器需負責妥善淨化自身輸入。

為了防範請求走私等攻擊,強烈建議來電者確認這些值不含換行字元。

適用於