编码平台:使用C#的ASP.NET 4.0 Webforms
我有两个角色admin和成员。
在我的应用程序中,管理员可以操纵大多数成员数据
我知道在表单身份验证中,用户可以像
MembershipUser user = Membership.GetUser(clickeduserName);
user.UnlockUser();
Membership.UpdateUser(user);
我的问题是,
MembershipUser.IsLockedOut
Property
设置为ReadOnly?答案 0 :(得分:5)
这里讨论了几个选项:http://forums.asp.net/t/1435151.aspx
它们不同于使用IsApproved(可设置)而不是IsLockedOut来破坏底层SQL数据库以设置锁定标志。
答案 1 :(得分:4)
您可以通过执行以下操作来锁定用户(将.IsLockedOut
设置为true):
MembershipUser user = Membership.GetUser("UserToLock");
for (int i = 0; i < Membership.MaxInvalidPasswordAttempts; i++)
{
Membership.ValidateUser(user.UserName, "Not the right password");
}
答案 2 :(得分:3)
摘自MSDN:
通常情况下,在
LockedOut
内达到MaxInvalidPasswordAttempts
时,用户自动为PasswordAttemptWindow
。如果您使用接受密码答案的
中GetPassword
或ResetPassword
重载并且用户输入的错误答案数达到了成员资格值,则也可以锁定用户。{{1}在MaxInvalidPasswordAttempts
。
解决方法可能是使用IsApproved属性,如下所示:
Membership.PasswordAttemptWindow