Управление входом в ASP.NET - могу ли я добавить FailureText как элемент в ValidationSummary? - PullRequest
6 голосов
/ 08 апреля 2010

В настоящее время я работаю с контролем входа ASP.NET. Я могу установить пользовательский текст ошибки и добавить литерал на страницу, где отображается текст ошибки в случае сбоя входа в систему. У меня также есть сводка проверки на странице, на которой я собираю все ошибки, которые могут произойти (на данный момент он только подтверждает, что пользователь ввел имя пользователя и пароль.

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

Надеетесь, что огромная интеллектуальная сила стекопотока может дать мне несколько советов?

Спасибо!

/ Томас Кан PS. Я кодирую в C #.

Ответы [ 2 ]

10 голосов
/ 20 августа 2010

Я нашел решение, которое работает!

На странице я добавляю CustomValidator, например:

<asp:CustomValidator id="vldLoginFailed" runat="server" ErrorMessage="Login failed. Please check your username and password." ValidationGroup="loginControl" Visible="false"></asp:CustomValidator>

У меня также есть ValidationSummary, которая выглядит следующим образом:

<asp:ValidationSummary id="ValidationSummary" ValidationGroup="loginControl" runat="server" DisplayMode="BulletList" CssClass="validationSummary" HeaderText="Please check the following"></asp:ValidationSummary>

В моем контроле входа я добавляю метод в OnLoginError, поэтому он выглядит так:

<asp:Login ID="loginControl" runat="server" VisibleWhenLoggedIn="false" OnLoginError="loginControl_LoginError">

В своем коде я создаю метод, который запускается при ошибке входа в систему и выглядит так:

protected void loginControl_LoginError(object sender, EventArgs e)
{
    CustomValidator vldLoginFailed = (CustomValidator)loginControl.FindControl("vldLoginFailed");
    vldLoginFailed.IsValid = false;
}

Поэтому при возникновении ошибки входа в систему будет вызван метод loginControl_LoginError . Он находит CustomValidator и устанавливает для IsValid значение false. Поскольку CustomValidator принадлежит к группе проверки «loginControl», его сообщение об ошибке будет отображаться в ValidationSummary.

0 голосов
/ 05 августа 2010

Потенциально,

Вы можете переопределить метод Render в элементе управления ValidationSummary, проверяя ошибки, сообщенные элементом управления входом в систему. Я не уверен в том, как сообщать об ошибках, но если используется элемент проверки, проверяющий коллекцию Page.Validators, получит информацию, необходимую для обновления выходных данных отчета о проверке.

...