Gad*_*t27 6 asp.net-mvc-4 simplemembership
我在.NET MVC4项目中使用SimpleMembership.在开发过程中,在手动操作/重建数据库的过程中,我遇到了一个在生产中不太可能发生的错误,但我想解决这个问题,我找不到一个优雅的方法来处理它.
如果在登录应用程序后,您的用户名在数据库中被更改,或者您的用户记录被完全删除,则用户将无法再访问应用程序的任何页面...包括允许匿名查看的公共页面,以及登录屏幕.相反,抛出异常 - "未找到具有名称'username'的用户".
我的应用程序中的所有页面都显示部分视图,该视图呈现登录/注销控件.无论数据库中有什么,Request.IsAuthenticated都返回true.应用程序似乎认为用户仍然根据cookie中的信息登录,但是在数据库中找不到相应的记录.清除auth cookie解决了这个问题,但这不是我想要提供给可能遇到此问题的用户的指令.
我目前的解决方案是在Global.asax中捕获该异常,清除cookie并重定向到登录页面.这对我来说似乎完全是hacky.
有没有人有更好的解决方案?我从来没有遇到过使用旧的.NET成员资格提供商这样的问题...我的期望是这种情况应该开箱即用,我不应该考虑到它......如果记录被改变了/删除在数据库中,用户应该只是失败授权并自动重定向到登录页面.