0

在 MVC 4 项目中,当他碰巧登录时,我已经从系统中删除了用户。现在他从 SimpleMembershipProvider 方法(或成员资格/角色助手)中得到异常,该用户不存在。

然而,问题是,在登录时,他没有任何可能优雅地注销,而是得到错误页面,这不会让他使用该页面,直到 auth cookie 过时。如何拦截这样的情况?看起来我无法在任何地方处理这些异常。什么是处理它的好方法?

4

1 回答 1

1

如果您正在使用基于角色的授权并且在您的应用程序中正确设置了授权,那么处理此问题的优雅方法是不删除用户,而是取消他的角色,这样他就无法访问您不希望他访问的区域.

另一种方法是通过按照本文中的描述自定义 UserProfile 来向 UserProfile 添加一个启用标志。然后通过自定义 Authorize 属性在您的授权过程中使用 enabled 标志,以在 enabled 为 false 时使授权失败。而不是删除用户,您只需将启用标志翻转为 false。

于 2013-07-03T12:51:03.943 回答