2

ASP.NETPasswordRecoveryコントロールを標準のメンバーシッププロバイダーと組み合わせて使用​​します。ロックアウトされたユーザーは、紛らわしいエラーメッセージを受け取ります

お客様の情報にアクセスできませんでした。もう一度やり直してください。

このメッセージを変更したいのですが、仕方がありません。プロパティXXXFailureText、特にGeneralFailureTextには文字列が含まれています。プロパティを使用して変更できないこの特別な種類のエラーに使用される隠しテキストがあるようです。

4

3 に答える 3

8

私がこれを試すまで、これは私にも頭痛を引き起こしていました。ユーザーがロックアウトされていてうまく機能した場合にUserNameFaileurTextを設定するコードをVerifyingUserイベントに追加しました。つまり、エラーメッセージはまさに私が望んでいたものでした。

 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セクションが「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>

ところで、指定したエラーメッセージがデフォルトですUserNameFailureTexthttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.passwordrecovery.usernamefailuretext.aspx

他のすべてが失敗した場合は、イベントを乗っ取ってキャンセルし、独自のエラーメッセージを表示することができます。特に、UserLookupErrorおよびその他の*エラーイベント。http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.passwordrecovery_events.aspx

于 2011-10-20T15:05:22.573 に答える
0

コントロールのプロパティウィンドウには、変更可能なテキストのフィールドが表示されます。

PasswordRecoveryProperties

于 2011-10-20T12:44:45.330 に答える