我正在使用SimpleMembership在我的.NET MVC4项目中。在开发过程中,当手动操作/重建数据库时,我遇到了一个错误,在生产环境中不太可能出现,但我想解决这个问题,我找不到一个优雅的方法来处理它。
如果在登录应用程序后,您的用户名在数据库中更改或者您的用户记录完全删除,则用户将无法访问应用程序的任何页面...包括允许匿名视图的公共页面和登录屏幕。相反,会抛出异常-"未找到名称为'用户名'的用户"。
我的应用程序中所有页面都显示呈现登录/注销控件的部分视图。无论数据库中有什么内容,Request.IsAuthenticated都返回true。似乎应用程序认为用户仍然已登录,基于cookie中的信息,但在数据库中找不到相应的记录。清除auth cookie可以解决此问题,但这不是我想要向可能遇到此问题的用户提供的指令。
我的当前解决方案是在Global.asax中捕获该异常,清除cookie并重定向到登录页面。对我来说,这似乎完全是一个 hacky 解决方案。
是否有人对这种情况有更好的解决方案?我从未遇到过使用旧的.NET Membership提供程序出现这样的问题...我的期望是,这种情况应该被默认覆盖,我不应该对此进行说明...如果记录在DB中被更改/删除,则用户应该失败授权并自动重定向到登录页面。
如果在登录应用程序后,您的用户名在数据库中更改或者您的用户记录完全删除,则用户将无法访问应用程序的任何页面...包括允许匿名视图的公共页面和登录屏幕。相反,会抛出异常-"未找到名称为'用户名'的用户"。
我的应用程序中所有页面都显示呈现登录/注销控件的部分视图。无论数据库中有什么内容,Request.IsAuthenticated都返回true。似乎应用程序认为用户仍然已登录,基于cookie中的信息,但在数据库中找不到相应的记录。清除auth cookie可以解决此问题,但这不是我想要向可能遇到此问题的用户提供的指令。
我的当前解决方案是在Global.asax中捕获该异常,清除cookie并重定向到登录页面。对我来说,这似乎完全是一个 hacky 解决方案。
是否有人对这种情况有更好的解决方案?我从未遇到过使用旧的.NET Membership提供程序出现这样的问题...我的期望是,这种情况应该被默认覆盖,我不应该对此进行说明...如果记录在DB中被更改/删除,则用户应该失败授权并自动重定向到登录页面。