.NET MVC4 SimpleMembership错误 - "未找到具有名称xxx的用户"

Gad*_*t27 6 asp.net-mvc-4 simplemembership

我在.NET MVC4项目中使用SimpleMembership.在开发过程中,在手动操作/重建数据库的过程中,我遇到了一个在生产中不太可能发生的错误,但我想解决这个问题,我找不到一个优雅的方法来处理它.

如果在登录应用程序后,您的用户名在数据库中被更改,或者您的用户记录被完全删除,则用户将无法再访问应用程序的任何页面...包括允许匿名查看的公共页面,以及登录屏幕.相反,抛出异常 - "未找到具有名称'username'的用户".

我的应用程序中的所有页面都显示部分视图,该视图呈现登录/注销控件.无论数据库中有什么,Request.IsAuthenticated都返回true.应用程序似乎认为用户仍然根据cookie中的信息登录,但是在数据库中找不到相应的记录.清除auth cookie解决了这个问题,但这不是我想要提供给可能遇到此问题的用户的指令.

我目前的解决方案是在Global.asax中捕获该异常,清除cookie并重定向到登录页面.这对我来说似乎完全是hacky.

有没有人有更好的解决方案?我从来没有遇到过使用旧的.NET成员资格提供商这样的问题...我的期望是这种情况应该开箱即用,我不应该考虑到它......如果记录被改变了/删除在数据库中,用户应该只是失败授权并自动重定向到登录页面.

Kar*_*ian 1

您能否检查数据库缓存或页面某处,登录后,用户记录的依赖关系,它是依赖的,链删除还是可能由于依赖注入而发生。

请检查它或请分享代码..