HttpHeaders.TryAddWithoutValidation Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.