0

私が管理者だとします。ユーザーのパスワードをリセットしたい(Asp.net Webフォーム)。パスワードを変更する前に、ユーザーがWebにログインするのをブロックしたいと思います。理論的には、ユーザーはパスワードを変更することもできるからです。

IsLockedOutを「true」に設定しようと思っていますが、データベースでのみ読み取られると聞きました。男を追い出す方法はありますか?つまり、ユーザー名が「test」の場合、運用期間中は「test」ログインを防止したいということです。

MembershipUser user = Membership.GetUser(userName);
if (user.IsLockedOut == false)
{
   // kick out user
}

ありがとう。

4

2 に答える 2

1

データベースにアクセスするための独自のメソッドをいつでも作成できます。たとえば、MS SQLサーバーで既定のASP.NETメンバーシッププロバイダーを使用している場合は、aspnet_Membershipテーブルにアクセスできます。

ここでは、作業中にIsLockedOutまたはIsApprovedをFalse / 0に変更し、作業が終了したら再び元に戻すことができます。

これはWebGUIの1つのボタンであり、ユーザー名をそれらUserIdにマップする必要がありますが、前述のように、データベース内のこれらのテーブルにアクセスするには独自のメソッドを作成する必要があります。

于 2012-05-16T17:51:08.763 に答える
0

「最善の方法」は意見が分かれていますが、あなたが求めていることに基づいて私がそれを行う方法は次のとおりです。あなたの運用期間中に、testのユーザー名を に(または同様の) に変更します。test_reset運用期間中、エンドユーザーtestは、自分のユーザー名を使用してログインすることはできません (また、エンドユーザーとして、自分のユーザー名が何に変更されたかを知ることはできません)。期間が終了したら、ユーザー名を元に戻してください。

一般的な注意: あなたが管理者であり、アクセスできる限り、Web GUI に依存せずに詳細を掘り下げます.....

于 2012-05-16T17:45:38.233 に答える