帐户用户管理||如何实施冻结用户帐户?

时间:2014-08-17 10:31:20

标签: sql user-accounts

我有一个MVC(4)网站,我使用SQL-DB(使用azure)和Identity 2.0管理用户。

我完成了它并且它的工作很棒,但还有一个需求:

管理员可以冻结用户并取消冻结。

冻结的定义:用户将无法使用该网站的服务。

我想了3种方法来实现它:

1.创建一个独特的角色'Frozen'并将特定用户置于该角色中,并使用[Authorize(Roles="some_role_other_than_Frozen")]在我的网站中扭曲我的服务,以便用户无法使用该服务。

当管理员解冻用户时,弹出对话框会询问“您要为用户分配哪个角色?”因为当我们冻结他时,我们将他置于一个新的角色里。

2.从用户表中删除用户,而不是在为具有原始用户表的每个字段的冻结用户创建表之前。当我们要解冻用户时,我们只需将“冻结用户表”中的每个字段复制回“用户表”。

我希望它不会对密码和安全标记字段的散列产生问题。

3.在名为“Active”0/1的“User”实体中添加二进制字段,当用户登录时检查该字段。 当管理员冻结用户时,他只需将值0分配给该字段,解冻为1。

该解决方案的问题是,如果用户有cookie或更新安全标记(我认为......),管理员将冻结用户并将值0分配给“活动”字段,他仍然可以获得因为他不需要在网站的每个入口处登录,也许有办法强迫他登录,即使他标记了“记住我”这个框。

我将为第三个解决方案描述一个有问题的场景:

1.用户在下午6点登录并标记记住我复选框(下次他将进入他不需要登录的网站,该网站将记住他)。

2. 7-PM中的管理员将冻结用户(停用用户帐户)。

3.下午8点的用户将进入该网站,该网站将让他进入。这就是问题所在!

我想知道是否有人知道如何实施它或者我的解决方案之一的设计技巧?

1 个答案:

答案 0 :(得分:1)

最后我选择3是其中最合乎逻辑的选项,但我提到的问题是一个sagnifecnt问题我设法解决这个问题,通过custimze auzrize属性并添加检查字段,但这个意义是这样,我仍然在寻找注销用户的选项(不是我,其他用户)。

如果有人有问题,我很乐意回答。

远离麻烦。