私は、ユーザーが3か月ごとにパスワードを変更する必要があるユーザーモデルを持っています。私は何らかの形でユーザがログインしているかどうかを確認する必要があります(サイトの特定のセクションで匿名のブラウザを許可しています)。パスワードが期限切れになった場合は、他の操作を行う前に新しいパスワードを入力してください。すべてのアクションの前にユーザーデータを確認する
これを行うには、AccountのChangePasswordアクションを除いて、すべてのアクションに少しのコードを追加することがあります。たとえば:
var authenticatedUser = GetAuthenticatedUser();
if (authenticatedUser != null && authenticatedUser.IsPasswordExpired)
return RedirectToAction("Account", "ChangePassword");
明らかに、この問題を解決するには恐ろしい方法ですが、正しい方法は何か分かりません。何か案は?私は、これからもっと多くのユーザーデータチェックを追加しなければならないと確信しています。だから今私は本当に良い解決策を見つけたいと思っています。
これは良い解決策のようです。残念ながら、私は数日間コンピュータから離れていて、試してみることはできません。簡単な質問 - OnAuthorizeは、アクションがAuthorize属性を使用していない場合でも常に呼び出されますか? – Jason
はい、常に呼び出されます。 – jimr
ダイレクトページヒットでこれが呼び出されない理由を知っていますか? – IronicMuffin