2

我将 ASP.NET PasswordRecovery 控件与标准成员资格提供程序结合使用。被锁定的用户收到令人困惑的错误消息

我们无法访问您的信息。请再试一次。

我想更改此消息,但找不到任何方法。属性 XXXFailureText 尤其是 GeneralFailureText 包含多个字符串。似乎有一个隐藏文本用于这种特殊类型的错误,我无法使用属性进行更改。

4

3 回答 3

8

这也让我很头疼,直到我尝试了这个。我在 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);
    }
}
于 2012-12-11T15:25:29.983 回答
2

您是否使用自定义会员服务提供商?此错误可能是由部分实现的成员资格提供程序引起的。

您还需要检查您的 web.config 设置。确保设置了这样的东西:

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

除了检查他们您的 mailsettings/smtp 部分是否使用“发件人”电子邮件地址正确设置。

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

或在PasswordRecovery

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

顺便说一句,您指定的错误消息是默认的UserNameFailureTexthttp://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

于 2011-10-20T15:05:22.573 回答
0

在控件的属性窗口中,您可以更改显示的文本字段

密码恢复属性

于 2011-10-20T12:44:45.330 回答