HttpHeaders.TryAddWithoutValidation Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve um valor que indica se um novo cabeçalho e os seus valores foram adicionados à HttpHeaders coleção sem validar os valores do cabeçalho.
Sobrecargas
| Name | Description |
|---|---|
| TryAddWithoutValidation(String, IEnumerable<String>) |
Devolve um valor que indica se o cabeçalho especificado e os seus valores foram adicionados à HttpHeaders coleção sem validar a informação fornecida. |
| TryAddWithoutValidation(String, String) |
Devolve um valor que indica se o cabeçalho especificado e o seu valor foram adicionados à HttpHeaders coleção sem validar a informação fornecida. |
TryAddWithoutValidation(String, IEnumerable<String>)
Devolve um valor que indica se o cabeçalho especificado e os seus valores foram adicionados à HttpHeaders coleção sem validar a informação fornecida.
public:
bool TryAddWithoutValidation(System::String ^ name, System::Collections::Generic::IEnumerable<System::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
Parâmetros
- name
- String
O cabeçalho para adicionar à coleção.
- values
- IEnumerable<String>
Os valores do cabeçalho.
Devoluções
true se o cabeçalho name especificado e values puder ser adicionado à coleção; caso contrário false.
Observações
Este método realiza a validação dos nomes do cabeçalho, retornando false nomes inválidos. Os nomes dos cabeçalhos são obrigados a serem tokens HTTP válidos, onde um token é definido como qualquer conjunto de letras, dígitos ou símbolos ASCII do "!#$%&'*+-.^_`|~" conjunto, correspondendo à definição de RFC9110. Caracteres que não sejam ASCII não são permitidos num nome de cabeçalho.
Este método não realiza qualquer validação do valor do cabeçalho. Os valores adicionados através deste método são assumidos como confiáveis, e outras lógicas de aplicação, como HttpClient, podem comportar-se mal se não estiverem bem formadas.
Valores adicionados sem validação podem ser observados ao enumerar a coleção ou ao consultar o nome específico do cabeçalho, mesmo quando o chamador não está a usar a NonValidated vista da coleção.
Atenção
Este método nunca deve ser usado com valores não confiáveis, a menos que tenham sido suficientemente validados.
O que constitui validação "suficiente" pode variar consoante o caso de uso. No mínimo, proibir caracteres de nova linha para correção do protocolo, por exemplo, if (value.ContainsAny('\r', '\n', '\0')) throw .... Esta validação deve garantir que a aplicação servidor vê os valores da mesma forma que a aplicação cliente, ficando agora o servidor responsável por limpar corretamente as suas próprias entradas.
Para se proteger contra ataques como o contrabando de pedidos, recomenda-se vivamente que os chamadores validem que estes valores não contêm caracteres de nova linha.
Aplica-se a
TryAddWithoutValidation(String, String)
Devolve um valor que indica se o cabeçalho especificado e o seu valor foram adicionados à HttpHeaders coleção sem validar a informação fornecida.
public:
bool TryAddWithoutValidation(System::String ^ name, System::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
Parâmetros
- name
- String
O cabeçalho para adicionar à coleção.
- value
- String
O conteúdo do cabeçalho.
Devoluções
true se o cabeçalho name especificado e value puder ser adicionado à coleção; caso contrário false.
Observações
Este método realiza a validação dos nomes do cabeçalho, retornando false nomes inválidos. Os nomes dos cabeçalhos são obrigados a serem tokens HTTP válidos, onde um token é definido como qualquer conjunto de letras, dígitos ou símbolos ASCII do "!#$%&'*+-.^_`|~" conjunto, correspondendo à definição de RFC9110. Caracteres que não sejam ASCII não são permitidos num nome de cabeçalho.
Este método não realiza qualquer validação do valor do cabeçalho. Os valores adicionados através deste método são assumidos como confiáveis, e outras lógicas de aplicação, como HttpClient, podem comportar-se mal se não estiverem bem formadas.
Valores adicionados sem validação podem ser observados ao enumerar a coleção ou ao consultar o nome específico do cabeçalho, mesmo quando o chamador não está a usar a NonValidated vista da coleção.
Atenção
Este método nunca deve ser usado com valores não confiáveis, a menos que tenham sido suficientemente validados.
O que constitui validação "suficiente" pode variar consoante o caso de uso. No mínimo, proibir caracteres de nova linha para correção do protocolo, por exemplo, if (value.ContainsAny('\r', '\n', '\0')) throw .... Esta validação deve garantir que a aplicação servidor vê os valores da mesma forma que a aplicação cliente, ficando agora o servidor responsável por limpar corretamente as suas próprias entradas.
Para se proteger contra ataques como o contrabando de pedidos, recomenda-se vivamente que os chamadores validem que estes valores não contêm caracteres de nova linha.