2012-07-20 4 views
0

Я думаю, что в этом вопросе говорится все, с использованием шаблона по умолчанию в Register.aspx, я уже настроил CreateUserWizard с помощью Captcha, у меня также есть некоторые бизнес-логики необходимо проверить, прежде чем добавить пользователя, я попытался следующий способ, но он не работает, пользователь добавляется в любом случае, даже если e.Cancel это правдаКак проверить пользовательские записи перед добавлением пользователя в ASP.NET - CreateUserWizard

Protected Sub CreateUserWizard1_CreatingUser(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles CreateUserWizard1.CreatingUser 
    Dim Captcha As RecaptchaControl = CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("recaptcha1"), RecaptchaControl) 
    If Not (Captcha.IsValid and ValidateUserEntries) Then 
     e.Cancel = True 
    End If 
    End Sub 

Любые предложения, как бы я сделай это?

+1

Хм ... вы уверены, что настроили e.Cancel на истину? – aquinas

+1

Кстати, помимо моего ответа, я хотел бы подчеркнуть, что ваш код выглядит хорошо. Если ваша проверка прошла, это означает только, что она действительна, поэтому я бы рекомендовал вам дважды проверить ваши правила проверки, потому что установка 'e.Cancel = True' фактически делает трюк, чтобы остановить создание нового пользователя – Jupaol

ответ

0

как @Jupaol сказал в вопросительных комментариях, e.Cancel = True на самом деле делает трюк, чтобы остановить создание нового пользователя, однако причина была Captcha.IsValid он всегда возвращался верно !, после небольшого поиска я получил его на работу, получив a new api key

0

ASP.Net содержит несколько встроенных элементов управления валидатора для этой цели:

  • CompareValidator. Используется для сравнения двух значений, обычно два элемента управления, например пароль и пароль подтверждения. Он также может использоваться для обеспечения значения TextBox определенного типа (int, date, bool ...)

  • CustomValidator. Используется для написания вашей логики. Он содержит событие, которое должно быть выполнено на сервере (при валидации на сервере), и вы можете указать функцию JavaScript для проверки на клиенте

  • RangeValidator. Используется для проверки величины падения между определенным диапазоном

  • RegularExpressionValidator. Используется для проверки значений по регулярным выражениям

  • RequireFieldValidator. Указывает, что требуется управление

После того, как вы добавили валидаторы для выполнения ваших требований, вы получите автоматическую поддержку JavaScript, а также поддержку на стороне сервера.

Чтобы подтвердить страницу, вы могли бы назвать проверку так:

protected void CreateUserWizard1_CreatingUser(object sender, LoginCancelEventArgs e) 
{ 
    // optionally specify the ValidatinGroup used. this.Validate("validation group"); 
    this.Validate(); 
    if(!this.IsValid) 
    { 
     e.Cancel = true; 
     return; 
    } 
    // execute your code 
    // call here your domain logic to execute changes 
    // remember to apply domain rules in your domain before executing the current changes 
} 

Эти элементы управления используются для проверки ввода пользователя, гарантируя, что вход является действительным, однако вам может понадобиться для применения проверки домена, чтобы гарантировать безопасное выполнение изменений с использованием текущего пользовательского ввода с текущим состоянием вашего домена, эта проверка должна выполняться в ваших объектах домена или командах домена

Смежные вопросы