0

私はasp.netメンバーシップを使用しています。ユーザーに送信する一時パスワードを再生成できる管理ページを開発しています。その後、ユーザーが初めてログオンするときにパスワードを変更する必要がありますが、誰が知っているのかわかりませんパスワードがリセットされた場合。

ベースコントローラーで次のようなことを試しました:

if (user.LastPasswordChangedDate >= user.LastLoginDate)
{
    filterContext.Result = RedirectToAction("ChangePassword", "Account");
}

ただし、ChangePassword アクションは認証されたユーザーである必要があるため、LastLoginDate は既に更新しています。

パスワードをリセットしてユーザーをロック/ロック解除して「LastLockoutDate」を更新し、次のことを行うときに考えていました。

if (user.LastPasswordChangedDate >= user.LastLockoutDate)
{
    filterContext.Result = RedirectToAction("ChangePassword", "Account");
}

しかし、手動でロックアウトする方法が見つかりません

ありがとう!!!

4

1 に答える 1

1

できることはたくさんありますが、システムの動作に依存するものもあります。たとえば、コメントを使用していない場合は、特定のデータを [コメント] フィールドに保存できます。

または、「承認済み」ビットを使用しない場合 (つまり、新しいユーザーを作成するときに、電子メールなどを検証する必要はなく、代わりに IsApproved を true に設定して作成する場合)、IsApproved をに設定できます。 False で、False の場合はパスワードの変更を強制します。

メンバーシップ API でこのデータの多くにアクセスする方法はありません。データベースからアクセスするだけです。

これをパーソナライゼーション プロバイダーに格納することもできます。

もう 1 つのオプションは、これをメンバーシップ データベースに格納することを単純に避け、代わりにアプリ データにテーブルまたはフィールドを追加してこれに対処することです。

于 2012-10-07T00:28:52.597 に答える