ASP PasswordRecovery не работает - PullRequest
4 голосов
/ 25 июня 2010

У меня есть модуль ASP PasswordRecovery на странице, код выглядит так:

<asp:PasswordRecovery ID="PasswordRecovery1" runat="server">
    <MailDefinition From="[email]">
    </MailDefinition>
</asp:PasswordRecovery>

Однако, когда я отправляю форму, я просто получаю сообщение, "Мы не смоглиполучить доступ к вашей информации. Пожалуйста, попробуйте еще раз. "

Я видел этот вопрос и не забудьте добавить эти атрибуты в мой web.config здесь:

<providers>
    <remove name="CustomizedMembershipProvider"/>
    <add name="CustomizedMembershipProvider"
        type="System.Web.Security.SqlMembershipProvider"
        connectionStringName="MessageBank"
        applicationName="MessageBank"
        minRequiredPasswordLength="6"
        minRequiredNonalphanumericCharacters="0"
        requiresQuestionAndAnswer="false"
        enablePasswordReset="true"
        enablePasswordRetrieval="false" />
</providers>

Электронная почта работает нормально, потому что приложение регулярно отправляет электронные письма в течение дня.Но по какой-то причине он не отправляет письма восстановления.

Вот соответствующий раздел web.config:

<mailSettings>
    <smtp from="[email]">
        <network host="[host]" password="[password]" userName="[username]"/>
    </smtp>
</mailSettings>

ОБНОВЛЕНИЕ: я добавил функцию для обработки события "SendingMail":

Protected Sub PasswordRecovery_submit(ByVal sender As Object, ByVal e As WebControls.MailMessageEventArgs) Handles PasswordRecovery.SendingMail

Я добавил точку останова в этой функции, но она никогда не достигается, в приложении просто появляется указанное выше сообщение об ошибке.Любые другие способы отладки, что идет не так?

Ответы [ 3 ]

1 голос
/ 14 июля 2010

Это сообщение об ошибке по умолчанию UserNameFailureText

Вы уверены, что вводите правильное имя пользователя?

1 голос
/ 14 июля 2010

Вот как я решил проблему. Как упоминалось в комментариях к ответу Брайана, наше приложение использует пользовательскую функцию электронной почты (не на 100% уверен, почему, но обычные SMTP-вещи просто не работают). В любом случае, вы можете просто захватить событие PasswordRecovery.SendingMail:

Protected Sub PasswordRecovery_submit(ByVal sender As Object, ByVal e As WebControls.MailMessageEventArgs) Handles PasswordRecovery.SendingMail
    ' do custom email sending here, using the variables in e.Message 

    e.Cancel = False
End Sub
1 голос
/ 25 июня 2010

Вы не забыли объявить свой раздел smtp в вашем web.config?По умолчанию управление восстановлением пароля использует это во время выполнения.

<system.net>
<mailSettings>
<smtp deliveryMethod="Network">
<network
defaultCredentials="True"
host="localhost"
port="25"
from="webmaster@mydomain.com"/>
</smtp>
</mailSettings>
</system.net>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...