asp.net - 为什么 User.IsInRole 会返回 true,而 AuthorizeAttribute 不会?

标签 asp.net asp.net-mvc

我正在保护 ASP.NET MVC 2 应用程序,并且我有一个角色为“Foo”的用户。

这是真的:

User.IsInRole("Foo")

但是,当我尝试锁定如下所示的 Controller 操作时,用户被拒绝:
[Authorize(Roles = "Foo")]
public ActionResult PrivatePage()
{
    return View();
}

如果 IsInRole 报告为 true,为什么 Authorize 属性不允许用户进入?

最佳答案

如果您为表单例份验证 cookie 存储持久性 cookie,则可能会导致这种情况。在这种情况下,IsInRole 可能会检查 cookie,而无需验证最新的登录信息。

关于asp.net - 为什么 User.IsInRole 会返回 true,而 AuthorizeAttribute 不会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798256/

相关文章:

asp.net-mvc - <添加程序集=“System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35”/>

c# - 如何在 ASP MVC 中下载 NPOI 生成的 xls 文件

c# - 如何在 ASP.net MVC 5 中限制对 Controller 操作的访问

asp.net - 将 Sitebuilder SQL Server 数据库导出到 Excel |格式 | MySQL

c# - Request.QueryString[] 对比 Request.Query.Get() 对比 HttpUtility.ParseQueryString()

asp.net - PhantomJS 中的链接损坏

c# - 索引和计数必须引用字符串中的位置。参数名称 : count

asp.net-mvc - 尝试将 DbSet<TEntity>.Where() 与 EF7 和 ASP.NET5 一起使用

javascript - 什么时候我必须使用@section脚本?

asp.net-mvc - 无法对 Azure AD 安全 MVC Web 应用程序的 native 客户端进行身份验证