asp.net-mvc - MVC4 : User. IsInRole 无法正常工作

标签 asp.net-mvc asp.net-mvc-4 session simplemembership asp.net-roles

我正在使用 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/

相关文章:

scala - Play 框架处理 session 状态

asp.net-mvc - 如何测试MVC3 Razor 布局中是否存在变量?

c# - 将模型传递给 Html.Action

c# - 自动增量和 SQL 的身份

c# - 将服务器端和客户端身份验证与 WebAPI 相结合

Java Servlet - 需要使用 session 跟踪和泛型

c# - 如何使用 C# 和 ASP.NET MVC 插入从表单中获取的图像并将其作为字节存储到数据库中

asp.net-mvc - 在单声道或 Windows 上托管 ServiceStack、MVC3 或 MVC4 以及单声道的状态是什么

c# - MVC 4 Async Action 不处理等待之间的多个请求

c# - 如何用插件内的 View 文件覆盖 nopcommerce View 文件?