Изменить сообщение об ошибке для заблокированного пользователя в элементе управления PasswordRecovery - PullRequest
2 голосов
/ 20 октября 2011

Я использую элемент управления ASP.NET PasswordRecovery в сочетании со стандартным поставщиком членства.Заблокированный пользователь получает ошибочное сообщение об ошибке

Нам не удалось получить доступ к вашей информации.Пожалуйста, попробуйте еще раз.

Я хочу изменить это сообщение, но не могу найти способ.Свойства XXXFailureText, особенно GeneralFailureText, содержат строки.Кажется, для этой особой ошибки используется скрытый текст, который я не могу изменить с помощью свойства.

Ответы [ 3 ]

8 голосов
/ 11 декабря 2012

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

 protected void PasswordRecovery1_VerifyingUser(object sender, LoginCancelEventArgs e)
{
    MembershipUser membershipUser = Membership.GetUser(PasswordRecovery1.UserName);
    if (membershipUser != null && membershipUser.IsLockedOut)
    {
        PasswordRecovery1.UserNameFailureText = string.Format("<span style='font-            size:larger'>Your account has been locked. Please contact<br/>your <a href='mailto:webmanager@aaa.co.uk?subject=Locked Account - {0}'>system administrator</a>.</span>", PasswordRecovery1.UserName);
    }
}
2 голосов
/ 20 октября 2011

Используете ли вы пользовательский поставщик членства?Эта ошибка может быть вызвана частично реализованным поставщиком членства.

Вам также необходимо проверить настройки web.config.убедитесь, что установлено что-то вроде этого:

enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false"

, а также проверьте, правильно ли настроен ваш раздел mailsettings / smtp с адресом электронной почты 'from'.

<mailSettings>
  <smtp from="noreply@mysite.com">
    <network host="mysite.smtp.server" port="25"/>
  </smtp>
</mailSettings>

или установлен'from' в PasswordRecovery

<asp:PasswordRecovery runat="server">
    <MailDefinition From="passwordrecovery@mysite.com">
    </MailDefinition>
</asp:PasswordRecovery>

btw, указанное вами сообщение об ошибке по умолчанию UserNameFailureText.http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.passwordrecovery.usernamefailuretext.aspx

Если ничего не помогает, вы можете захватить события и отменить их, а затем показать свое собственное сообщение об ошибке.Особенно UserLookupError и другие события * Error.http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.passwordrecovery_events.aspx

0 голосов
/ 20 октября 2011

В окне свойств элемента управления есть поле для отображаемого текста, которое вы можете изменить

PasswordRecoveryProperties

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...