RequestValidationSource Enum

Definitie

Hiermee geeft u op welk soort HTTP-aanvraaggegevens moeten worden gevalideerd.

public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource = 
Public Enum RequestValidationSource
Overname
RequestValidationSource

Velden

Name Waarde Description
QueryString 0

De queryreeks.

Form 1

De formulierwaarden.

Cookies 2

De aanvraagcookies.

Files 3

Het geüploade bestand.

RawUrl 4

De onbewerkte URL. (Het deel van een URL na het domein.)

Path 5

Het virtuele pad.

PathInfo 6

Een HTTP-tekenreeks PathInfo , een extensie voor een URL-pad.

Headers 7

De headers van het verzoek.

Voorbeelden

In het volgende voorbeeld ziet u hoe u een aangepaste aanvraagvalidatorklasse maakt die alleen een specifieke tekenreeks toestaat voor queryreekswaarden.

Imports System.Web
Imports System.Web.Util

Public Class CustomRequestValidation
    Inherits RequestValidator

Protected Overloads Overrides Function IsValidRequestString( _
        ByVal context As HttpContext, _
        ByVal value As String, _
        ByVal requestValidationSource__1 As RequestValidationSource, _
        ByVal collectionKey As String, _
        ByRef validationFailureIndex As Integer) As Boolean
    validationFailureIndex = -1
    ' Set a default value for the out parameter.
    ' This application does not use RawUrl directly, so you can
    ' ignore the check for RequestValidationSource.RawUrl.
    If requestValidationSource = RequestValidationSource.RawUrl Then
        Return True
    End If

    ' Allow the query-string key "data" to have an XML-like value.
    If (requestValidationSource = _
            (RequestValidationSource.QueryString) AndAlso _
            (collectionKey = "data") Then
        ' The querystring value "<example>1234</example>" is allowed.
        If value = "<example>1234</example>" Then
            validationFailureIndex = -1
            Return True
        Else
            ' Leave any further checks to ASP.NET.
            Return MyBase.IsValidRequestString(context, value, _
                requestValidationSource__1, collectionKey, _
                validationFailureIndex)
        End If
    Else
        ' All other HTTP input checks fall back to
        ' the base ASP.NET implementation.
        Return MyBase.IsValidRequestString(context, value, _
            requestValidationSource__1, collectionKey, _
            validationFailureIndex)
    End If
End Function
End Class
using System;
using System.Web;
using System.Web.Util;

public class CustomRequestValidation : RequestValidator
{
    public CustomRequestValidation() {}

    protected override bool IsValidRequestString(
        HttpContext context, string value,
        RequestValidationSource requestValidationSource, string collectionKey,
        out int validationFailureIndex)
    {
        //Set a default value for the out parameter.
        validationFailureIndex = -1;

        // This application does not use RawUrl directly,
        // so you can ignore the check for RequestValidationSource.RawUrl.
        if (requestValidationSource == RequestValidationSource.RawUrl)
            return true;

        // Allow the query-string key "data" to have an XML-like value.
        if (
            (requestValidationSource == RequestValidationSource.QueryString) &&
            (collectionKey == "data")
           )
        {
            // The querystring value "<example>1234</example>" is allowed.
            if (value == "<example>1234</example>")
            {
                validationFailureIndex = -1;
                return true;
            }
            else
           // Leave any further checks to ASP.NET.
                return base.IsValidRequestString(context, value,
                requestValidationSource, collectionKey, out
                validationFailureIndex);
        }
        // All other HTTP input checks fall back to
        // the base ASP.NET implementation.
        else
        {
            return base.IsValidRequestString(context, value,
                requestValidationSource, collectionKey,
                out validationFailureIndex);
        }
    }
}

In het volgende voorbeeld ziet u hoe u ASP.NET configureert voor het gebruik van de aangepaste validator.

<httpRuntime requestValidationType="CustomRequestValidation" />

Opmerkingen

U kunt een aangepast validatietype voor aanvragen maken door het type te RequestValidator implementeren. Wanneer ASP.NET de methode IsValidRequestString aanroept om een aanvraag te valideren, geeft ASP.NET een parameter requestValidationSource door om de bron op te geven van de gegevens die worden gevalideerd. De RequestValidationSource opsomming wordt gebruikt om de bron of het soort aanvraaggegevens op te geven dat wordt gevalideerd. De opsomming geeft het type HTTP-invoer aan dat wordt doorgegeven in de value parameter van de IsValidRequestString methode. U kunt de opsomming gebruiken als een manier om terug te vallen op de implementatie van de basisaanvraagvalidatie voor HTTP-invoer als u niet wilt valideren met behulp van aangepaste logica.

In de volgende tabel ziet u hoe de waarde van de collectionKey en value parameter van de RequestValidator.IsValidRequestString methode wordt geïnterpreteerd voor elk lid van de RequestValidationSource opsomming.

Opsommingslid collectionKey-parameter value-parameter
Cookies De naam van de cookie in de verzameling. De waarde in de verzameling.
Files De naam van het geüploade bestand in de verzameling. De waarde van het geüploade bestand in de verzameling.
Form De naam van de formulierparameter in de verzameling De waarde van de formulierparameter in de verzameling.
Headers De naam van een HTTP-header in de verzameling. De waarde van de HTTP-header in de verzameling.
Path null (Path is geen verzameling waarden). De waarde van het veld Pad.
PathInfo null (PathInfo is geen verzameling waarden). De waarde van het veld PathInfo.
QueryString De naam van de parameter queryreeks in de verzameling. De waarde van de queryreeksparameter in de verzameling.
RawUrl null (RawUrl is geen verzameling waarden.) De waarde van het veld RawUrl.

Van toepassing op

Zie ook