3

サイトの管理者がメンバーをロックアウトできるようにしたいのですが、デフォルトのMVCメンバーシップのIsLockedOut()は読み取り専用です。カスタムメンバーシッププロバイダーを作成する必要があることを読みましたが、それが何を意味するのか完全にはわかりません。membershipUserプロパティを使用して新しいモデルを作成する必要がありますか?可能であれば、データベースに新しいテーブルを作成したくありません。

これが私のlockUserメソッドのために持っているコードです:

public static void LockUser(this MembershipUser user)
    {
        using (var db = new MovieContext())
        {
            Guid userid = (Guid)user.ProviderUserKey;
            MembershipUser member = Membership.GetUser(userid);
            member.IsLockedOut = true;
            member.LastLockoutDate = DateTime.Now;
            db.SaveChanges();
        }
    }
4

1 に答える 1

6

アンドリュー、このアプローチを試してください。IsLockedOut ではなく IsApproved を使用します。実装で IsAproved をまだ使用していない場合は、これが適切な解決策になります。

MembershipUser muUser = Membership.GetUser(strUsernameToActOn);
muUser.IsApproved = false;
Membership.UpdateUser(muUser);

これは正確にユーザーをロックしているわけではありません。技術的には、この呼び出しはユーザーから承認済みステータスを取得し、ログインできないままにします。

于 2013-03-19T03:14:17.503 に答える