1

これが私の問題です。私のアプリには、ログイン ページ、パスワード リセット ページ、およびプロファイル ページがあります。パスワードリセットページとプロフィールページは認証なしではアクセスできません。

[Authorize]プロファイル アクションとパスワード リセット アクションに使用します。

私のアプリでは、30 日後にユーザー パスワードの有効期限が切れます。したがって、ユーザーがログインし、パスワードの有効期限が切れている場合、ユーザーをリダイレクトしてパスワードページを変更します。ユーザーはすでに認証されているため、ユーザーは URL を入力してプロファイル ページに移動できます (例: www.mywebsite.com/Profile/View)。これは抜け穴です。

ユーザーにパスワード変更プロセスをキャンセルしてほしくありません。ユーザーにパスワードの変更を強制したい。

どうすればこれを達成できますか?

4

1 に答える 1

1

ユーザー/パスワード テーブルに別のブール フラグ列を用意して、パスワードの有効期限が切れた後にユーザーがパスワードをリセットしたかどうかを示します。したがって、パスワードの有効期限が切れるたびに、そのレコードのこの列の値を に設定しfalse、ユーザーがプロセスに従ってパスワードを実際に変更するときに、値を に設定しますtrueViewこれで、ユーザーがアクション メソッド (またはその他のアクション メソッド/コントローラー)にアクセスしようとしたときに、この列の値を確認できます。このチェックをカスタム アクション フィルターとして記述し、必要に応じてアクション メソッド/コントローラーに適用できます。

PasswordLastUpdated上記のブール値フラグの代わりに、datetime 列を使用することもできます。その場合は、その値 (PasswordLastUpdated) が有効期限プロセスに対して記録されている日時よりも前か後かを確認する必要があります (DateExpired列の値) 。

カスタム アクション フィルターの作成例は、こちらから入手できます。

于 2013-02-10T11:34:23.763 に答える