Partager via


HttpHeaders.TryAddWithoutValidation Méthode

Définition

Retourne une valeur qui indique si un nouvel en-tête et ses valeurs ont été ajoutés à la HttpHeaders collection sans valider les valeurs d’en-tête.

Surcharges

Nom Description
TryAddWithoutValidation(String, IEnumerable<String>)

Retourne une valeur qui indique si l’en-tête spécifié et ses valeurs ont été ajoutées à la HttpHeaders collection sans valider les informations fournies.

TryAddWithoutValidation(String, String)

Retourne une valeur qui indique si l’en-tête spécifié et sa valeur ont été ajoutées à la HttpHeaders collection sans valider les informations fournies.

TryAddWithoutValidation(String, IEnumerable<String>)

Source:
HttpHeaders.cs
Source:
HttpHeaders.cs
Source:
HttpHeaders.cs
Source:
HttpHeaders.cs

Retourne une valeur qui indique si l’en-tête spécifié et ses valeurs ont été ajoutées à la HttpHeaders collection sans valider les informations fournies.

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

Paramètres

name
String

En-tête à ajouter à la collection.

values
IEnumerable<String>

Valeurs de l’en-tête.

Retours

true si l’en-tête name spécifié et values peut être ajouté à la collection ; sinon false.

Remarques

Cette méthode effectue la validation du nom d’en-tête, en retournant false pour les noms non valides. Les noms d’en-tête sont appliqués pour être des jetons HTTP valides, où un jeton est défini comme n’importe quel ensemble de lettres ASCII, de chiffres ou de symboles de l’ensemble "!#$%&'*+-.^_`|~" , correspondant à la définition de RFC9110. Les caractères non ASCII ne sont pas autorisés dans un nom d’en-tête.

Cette méthode n’effectue aucune validation de valeur d’en-tête. Les valeurs ajoutées via cette méthode sont supposées être approuvées et d’autres logiques d’application, telles que HttpClient, peuvent mal se comporter si elles ne sont pas bien formées.

Les valeurs ajoutées sans validation peuvent être observées lors de l’énumération de la collection ou de l’interrogation du nom d’en-tête spécifique, même lorsque l’appelant n’utilise pas la NonValidated vue de la collection.

Avertissement

Cette méthode ne doit jamais être utilisée avec des valeurs non approuvées, sauf si elles étaient suffisamment validées.

Ce qui constitue une validation « suffisante » peut varier en fonction du cas d’usage. Au minimum, interdire les caractères de ligne de nouvelle ligne pour la correction du protocole, par exemple if (value.ContainsAny('\r', '\n', '\0')) throw .... Cette validation doit s’assurer que l’application serveur voit les valeurs de la même façon que l’application cliente, le serveur étant désormais responsable de l’assainissement correct de ses propres entrées.

Pour vous protéger contre les attaques telles que la contrebande de demandes, les appelants sont fortement encouragés à vérifier que ces valeurs ne contiennent pas de caractères de ligne de nouvelle ligne.

S’applique à

TryAddWithoutValidation(String, String)

Source:
HttpHeaders.cs
Source:
HttpHeaders.cs
Source:
HttpHeaders.cs
Source:
HttpHeaders.cs

Retourne une valeur qui indique si l’en-tête spécifié et sa valeur ont été ajoutées à la HttpHeaders collection sans valider les informations fournies.

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

Paramètres

name
String

En-tête à ajouter à la collection.

value
String

Contenu de l’en-tête.

Retours

true si l’en-tête name spécifié et value peut être ajouté à la collection ; sinon false.

Remarques

Cette méthode effectue la validation du nom d’en-tête, en retournant false pour les noms non valides. Les noms d’en-tête sont appliqués pour être des jetons HTTP valides, où un jeton est défini comme n’importe quel ensemble de lettres ASCII, de chiffres ou de symboles de l’ensemble "!#$%&'*+-.^_`|~" , correspondant à la définition de RFC9110. Les caractères non ASCII ne sont pas autorisés dans un nom d’en-tête.

Cette méthode n’effectue aucune validation de valeur d’en-tête. Les valeurs ajoutées via cette méthode sont supposées être approuvées et d’autres logiques d’application, telles que HttpClient, peuvent mal se comporter si elles ne sont pas bien formées.

Les valeurs ajoutées sans validation peuvent être observées lors de l’énumération de la collection ou de l’interrogation du nom d’en-tête spécifique, même lorsque l’appelant n’utilise pas la NonValidated vue de la collection.

Avertissement

Cette méthode ne doit jamais être utilisée avec des valeurs non approuvées, sauf si elles étaient suffisamment validées.

Ce qui constitue une validation « suffisante » peut varier en fonction du cas d’usage. Au minimum, interdire les caractères de ligne de nouvelle ligne pour la correction du protocole, par exemple if (value.ContainsAny('\r', '\n', '\0')) throw .... Cette validation doit s’assurer que l’application serveur voit les valeurs de la même façon que l’application cliente, le serveur étant désormais responsable de l’assainissement correct de ses propres entrées.

Pour vous protéger contre les attaques telles que la contrebande de demandes, les appelants sont fortement encouragés à vérifier que ces valeurs ne contiennent pas de caractères de ligne de nouvelle ligne.

S’applique à