0

假设我是管理员。我想为用户重置密码。(Asp.net 网络表单)。在我更改密码之前,我想阻止用户登录网络,因为理论上他/她也可以登录更改密码。

我正在考虑将 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表。

在这里,您可以在工作时将IsLockedOutor更改IsApproved为 False / 0,然后在完成后再次返回。

这可以是 Web GUI 中的一个按钮,您只需要将用户名映射到他们的UserId.,但如前所述,您需要编写自己的方法来访问数据库中的这些表。

于 2012-05-16T17:51:08.763 回答
0

“最好的方法”是固执己见的,但根据您的要求,这是我将如何做到的。在您的运营期间,我会将test的用户名更改为(或类似)。test_reset在您的运营期间,最终用户test将无法使用他的用户名登录(并且作为最终用户,将不知道他的用户名被更改为什么)。期限结束后,将用户名改回原来的。

一般注意事项:只要您是管理员并且有权访问,我就会深入研究具体细节,而不是依赖 Web GUI 来这样做......

于 2012-05-16T17:45:38.233 回答