阻止对用户的应用程序访问

时间:2010-12-09 02:12:06

标签: asp.net asp.net-mvc asp.net-mvc-2

我有一个使用默认ASP.NET成员资格提供程序的ASP.NET MVC应用程序。

我的客户要求实施阻止用户登录的功能(例如,对于辞职并离开公司的用户)。

我无法使用Membership表的IsApproved标志,因为该字段用于确认用户注册。

这样做有内置功能吗?你在这样的场景中有什么经历?

1 个答案:

答案 0 :(得分:1)

由于您未使用帐户锁定,因此可以使用IsLockedOut标志。如果IsLockedOuttrue,则用户在清除之前将无法登录。

有关如何使用此属性的详细信息,请参阅MembershipUser.IsLockedOut

如果您想避免使用IsLockedOut,并假设您正在使用SqlMembershipProvider,则另一个选项是直接修改提供程序在登录过程中调用的过程:{{1 }}。

如果检查该过程的代码,您将看到如果用户不存在或被锁定,则返回非零结果:

aspnet_Membership_GetPasswordWithFormat

您可以在单独的表中维护被阻止用户的列表,并在此处进行检查。缺点是,如果重新创建此过程或将站点切换到新的成员资格数据库,则这些更改可能会丢失。

在这两个选项之间,我选择使用IF (@UserId IS NULL) RETURN 1 IF (@IsLockedOut = 1) RETURN 99 ,但我想我会添加另一个选项,以防有这种方式强烈反对使用它。

HTH