DomainValidator - covert everything .tolower

Topics: Validation Application Block
Mar 9, 2009 at 9:05 AM
I would like to covert all the input of a textbox to lower so i can validate it using the domainvalidator

when i type <SCRIPT> into Textbox1 and then click the Button1 it fails to validate as the DomainValidator is case senstive which only validates <script>

So i want it to convert everything that i typed in Textbox1 into lower, validate the input using the class, if it passes then continue with the "Original text from the textbox"

below is my code sample

codebehind:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        proxy_validator()

    End Sub

    Sub proxy_validator()

        PropertyProxyValidator1.ControlToValidate = "Textbox1"
        PropertyProxyValidator1.PropertyName = "AccountName"
        PropertyProxyValidator1.SourceTypeName = "ss_validation"
        PropertyProxyValidator1.SpecificationSource = ValidationSpecificationSource.Both
        PropertyProxyValidator1.Display = ValidatorDisplay.None

    End Sub

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        If Page.IsValid Then
            Label1.Text = "success!"
        Else
            Label1.Text = "failed to validate"
        End If

    End Sub

class:
Imports Microsoft.VisualBasic
Imports Microsoft.Practices.EnterpriseLibrary.Validation.Validators
Imports Resources

Public Class ss_validation

    Dim _AccountName As String = Nothing
    <StringLengthValidator(1, 10, MessageTemplateResourceType:=GetType(StarOne), MessageTemplateResourceName:="account_textbox_callout")> _
    <DomainValidator("<script>", "</script>", "<%", "%>", "<!", "!>", "<noscript>", "</noscript>", "<?php", "?>", MessageTemplateResourceType:=GetType(Resource), MessageTemplateResourceName:="validation_script_injection", negated:=True)> _
    Public Property AccountName() As String

        Get
            Return _AccountName
        End Get

        Set(ByVal _value As String)
            _AccountName = _value
        End Set

    End Property
End Class
Mar 9, 2009 at 10:28 AM
Hi,

You can do it on the ValueConvert event of the proxyvalidator. like this : 

 

 

        protected void PropertyProxyValidator1_ValueConvert(object sender, ValueConvertEventArgs e)

        {

            e.ConvertedValue = e.ValueToConvert.ToString().ToLower();

        }

Where "e.ValueToConvert" contains the string that was input from the textbox.

Valiant Dudan
Global Technology and Solutions
Avanade, Inc.
entlib.support@avanade.com

 

 

 

Mar 9, 2009 at 11:02 AM
thanks Valiant
just what i was after!!!