2

重複の可能性:
連絡フォームasp.netを使用して電子メールに送信する

C#を使用してASP.NETページから電子メールを送信する方法パスワードを忘れた場合、パスワードは自動的に代替IDに電子メールで送信されます。C#を使用してASP.NETページから電子メールを送信するにはどうすればよいですか。

4

4 に答える 4

3

これに関する記事やチュートリアルは不足していません。

補足:ユーザーにパスワードを電子メールで送信できるということは、パスワードをプレーンテキストで保存していることを意味します。しないでください。パスワードは暗号化された形式で保存する必要があります。ユーザーがパスワードを忘れた場合は、パスワードをリセットするための一時的なリンクをユーザーにメールで送信してください。

于 2011-02-23T20:58:49.553 に答える
2

SmtpClientクラスを使用して、.NETアプリケーションで電子メールを送信できます。

于 2011-02-23T20:57:06.977 に答える
1

あなたが提案していることは、セキュリティリスクのように聞こえます。プレーンテキストのパスワードをどこかに保存していることを前提としているため、電子メールでパスワードを送信することはお勧めできません。パスワードのソルトハッシュのみを知っている必要があるため、代わりにユーザーにパスワードをリセットさせることをお勧めします。

それでもメールを送信する理由がある場合は、ここから開始するための広範なチュートリアルを確認できると思います。ただし、真剣に、パスワードをハッシュしていない場合は、すべてのユーザーのセキュリティを危険にさらす可能性があります。さらに、パスワードを電子メールで送信している場合は、さらに危険にさらされる可能性があります。

于 2011-02-23T20:57:42.720 に答える
1

簡単な答えは、上記のように(+1'd btw)、SmtpClientクラスを使用することです。

ただし、パスワードを電子メールで送信するのは危険です。経験則として:

  • クリアテキストでパスワードを送信しないでください
  • パスワードをクリアテキストで保存しないでください

パスワードを保存するとき(これをすべて行うフレームワークがない場合)

  • 塩を作る
  • パスワードにソルトを追加します
  • 結果の文字列をハッシュします
  • ソルトと結果のハッシュを保存します
  • パスワードを破棄します
  • 認証時に、新しく提供されたパスワードにソルトを追加し、結果の文字列をハッシュして、保存されているハッシュと比較します

ユーザーがパスワードを忘れた場合は、そのユーザーに、パスワードをリセットするための1回限りの使用、時間に敏感な(1時間で期限切れになりますか?)一意のリンクを含む電子メールを送信します。また、パスワードリセットフォームでアカウント名やその他の識別基準を手動で入力するようにユーザーに要求することもお勧めします。

于 2011-02-23T21:13:17.793 に答える