我正在使用 ASP.NET MVC SimpleMemberShip 提供程序,
登录后一段时间没有任何问题。我检查用户是否是Boss,这有效。
if (User.IsInRole("Boss")) {
//do something
}
但是几分钟后,当我刷新页面时,User.IsInRole("Boss")
总是返回 false。
我调试并检查了用户是否仍然登录,是的,用户仍然在那里,没有任何改变,但 IsInRole 一直返回 false。
当我注销并再次登录时,它开始工作。
我认为问题出在Sessions
上,但我找不到任何解决方案。
这是我在Web.config
中的内容
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
更新:
当我重建项目时,我意识到这种情况会发生。
最佳答案
您可能会丢失 cookie。尝试添加:
<forms loginUrl="~/Account/Login" cookieless="UseCookies" timeout="2880" />
这解决了我们的 MVC 应用程序中的很多问题。
关于asp.net-mvc - MVC4 : User. IsInRole 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19428744/