Я нашел решение, которое работает!
На странице я добавляю 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.