私はここで新しいです。私はこのような問題を抱えています: ASP.NET (C#) で登録ページを作成し、ゲストが自分のサイトでアカウントを登録できるようにします。すべてのユーザーは、私のウェブサイトを使用する前にアカウントをアクティブにする必要があります。15 分後、ユーザーがメールでアカウントをアクティブにしない場合 => そのユーザーをデータベースから削除します。私の問題は、それを自動的に行う方法ですか?
1 に答える
1
タイマーを使用してユーザーを削除するのではなく、ユーザー (またはパスワード) の有効期限を設定するという従来のアプローチを使用します。つまり、最初に登録するときに、現在時刻から 15 分間の有効期限を割り当てます (たとえばExpirationDate
、ユーザー テーブルの列に)。認証プロセスでは、ユーザーの ID の有効期限が切れていないことをロジックで検証する必要があります。
タイマーを使用する際の問題は、多くのことがうまくいかないことです。たとえば、アプリケーションが再起動すると、アクティブなタイマーはすべて失われます。とても脆いです。ハエを殺すためにハンマーを使うようなものでもあります。誰かのユーザー レコードが 15 分後にデータベースからすぐに削除されるようにする必要はありません。それ以降は認証できないようにするだけで十分です。そのため、できるだけ簡単な方法でデザインをビジネスの目的に合わせてください。本当にレコードを削除したい場合 (たとえば、パスワードをリセットした後に再試行する機会を与えるのではなく)、何らかの外部メンテナンス プロセスを使用してこれを行うことができます。
于 2012-05-06T18:40:07.757 に答える