簡體   English   中英

如何使用表單身份驗證鎖定用戶

[英]How to lock user using forms authentication

編碼平台:使用C#的ASP.NET 4.0 Webforms

我有兩個角色admin和member。
在我的應用程序中,管理員可以操縱大多數成員數據。
我知道在表單身份驗證中,用戶可以解鎖,如,

            MembershipUser user = Membership.GetUser(clickeduserName);
            user.UnlockUser();
            Membership.UpdateUser(user);

我的問題是,

  1. 如何在表單身份驗證中鎖定用戶?
  2. 為什么MembershipUser.IsLockedOut Property設置為ReadOnly?
  3. 作為管理員,這不是LockOut人的正確方法嗎?

這里討論了幾個選項: http//forums.asp.net/t/1435151.aspx

它們從使用IsApproved(可設置)而不是IsLockedOut到使用底層SQL數據庫來設置鎖定標志。

您可以通過執行以下操作使其鎖定用戶(將.IsLockedOut設置為true):

    MembershipUser user = Membership.GetUser("UserToLock");        
    for (int i = 0; i < Membership.MaxInvalidPasswordAttempts; i++)
    {
        Membership.ValidateUser(user.UserName, "Not the right password");
    }

摘自MSDN:

通常,當在PasswordAttemptWindow達到MaxInvalidPasswordAttempts時,User's自動為LockedOut

如果您使用接受密碼答案的GetPasswordResetPassword重載並且用戶輸入的錯誤答案數達到Membership的值,也可以鎖定用戶。 Membership.PasswordAttemptWindow MaxInvalidPasswordAttempts

解決方法可能是使用IsApproved屬性,如下所示:

MembershipUser user = Membership.GetUser();
user.IsApproved = false;
Membership.UpdateUser(user);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM