如何在asp.net成员资格中激活/停用多个用户

时间:2012-02-13 11:24:29

标签: asp.net asp.net-membership

我正在尝试通过选择用户并单击按钮来授予网站管理员激活/停用或解锁多个用户的权限。

asp.net会员资格没有这样的方法(据我所知)。我不想为每个用户调用一次UpdateUser()。

任何想法?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您必须创建一个自定义存储过程,以逗号分隔格式向其发送用户名列表,并在服务器上处理它们。这将是稍微复杂和丑陋的工作,因为您还必须发送应用程序名称。对于您的过程处理的每个用户调用aspnet_Membership_UnlockUser SP,将其传递给应用程序名称(@ApplicationName)和用户名(@UserName)。

查看aspnet_Membership_UnlockUser SP的逻辑。也许你可以提出一个更好的解决方案。

编辑:另一个解决方案是通过.NET程序集创建一个类型,它类似于一个表,其中包含一个用户名列表,您将其作为UDF参数传递给SqlCommand。在服务器上,您将使用此参数将其与Jigar的查询或循环连接,以用于您的类型中的每个项目。这可能是一个更好的解决方案,因为您可以将程序集重用于其他此类方案。

答案 1 :(得分:1)

您可以使用以下逻辑,但是更好地使用有能力的方式,但上面提到的存储过程中的逻辑正在跟随。

UPDATE dbo.aspnet_Membership  
SET IsLockedOut = 0,  
    FailedPasswordAttemptCount = 0,  
    FailedPasswordAttemptWindowStart = CONVERT(datetime, '17540101', 112),
    FailedPasswordAnswerAttemptCount = 0,  
    FailedPasswordAnswerAttemptWindowStart = CONVERT(datetime, '17540101', 112),
    LastLockoutDate = CONVERT(datetime, '17540101', 112 )  
WHERE @UserId IN (YOUR COLLECTED USERID"S WITH COMMA)

现在你需要构建调用上述SP逻辑的逻辑,这样你就可以完成任务。