0

パスワードを忘れて新しいパスワードをメールで送信するユーザー向けのページを設計する必要があるアプリを開発しています。ASP.NET メンバーシップを使用しており、パスワード形式はハッシュ化する必要があります。

私の問題は、メールの送信に失敗したとき、パスワードが変更されたときです。仕事はできません。

あなたの解決策は何ですか?

4

6 に答える 6

1

パスワードのリセットを確認できるリンクが記載された電子メールをユーザーに送信する必要があります (そうしないと、電子メールを推測して他のユーザーのパスワードをリセットする可能性があります)。リンクされたページで、ユーザーはパスワードのリセットを確認します (または自分で変更することさえあります)。

ただし、どのような形や形式でもパスワードを送信しないことをお勧めします。最も安全です。

プロセス

  1. ユーザーは、電子メールでパスワードのリセットを要求します。
  2. リンクが記載されたメールを受け取る
  3. リンクをクリックして新しいパスワードを入力すると、すぐにハッシュ化されてシステムに保存されます。
于 2009-07-21T16:53:32.330 に答える
1

影響を受けるユーザーのpasswordFormat値を aspnet_Membership テーブルで一時的に "Clear" に設定し、パスワードを割り当ててから、電子メールが機能するように作業することができます。

aspnet_Membership.passwordFormat の値を 0 に設定すると、形式がクリア テキストに変更されます。つまり、暗号化されません。安全ではありませんが、ログインできます。その後、パスワードをリセットすると、2 (暗号化) に戻ります。

代替テキスト

于 2009-07-21T16:53:38.507 に答える
0

データベースへの変更を実際にコミットする前に、電子メールが正常に送信されたかどうかを判断できる場合、これは適切なオプションです。これは常に当てはまるわけではありませんが、アプリケーションで機能する可能性があります。

通常、私の経験では、電子メールが失敗した場合、ASPは例外をスローします。これが発生した場合は、DBで何もしないでください。メールが通過した場合は、パスワードを変更してください。それは彼らが電子メールを受け取るという意味ではありませんが、とにかく電子メールの旅行中の問題を説明することはできません。上記のオプションは、これが失敗した後に適用されます。;)

于 2009-07-21T16:49:33.303 に答える
0

asp.netでこのような機能がサポートされているかどうかはわかりません。

ただし、一部のWebサイトでは、クリックするためのリンクが記載された電子メールが送信されます(数日で期限切れになります)。これをクリックすると、そのアクションにコミットしていることを確認できます(つまり、パスワードは、電子メールを受信して​​受信したリンクをクリックした後でのみ変更されます)。

于 2009-07-21T16:50:07.033 に答える
0

ASP.NETは、電子メールが機能しない場合のパスワード回復への質問と秘密の回答のアプローチもサポートしています。

于 2009-07-21T16:50:15.910 に答える
0

ユーザーはパスワードを再度変更する必要があります。メールが成功することを願っています。

間違ったアドレスを入力した場合は、メール アドレスを修正できる管理者に連絡する必要があります。

于 2009-07-21T16:46:29.787 に答える