自定义AuthorizeAttribute无法正常工作

时间:2016-09-06 12:04:00

标签: c# asp.net-mvc

我正在使用MVC5,并希望在这里有一个很好的小类,如问题所示 - 一个允许为角色授权传递多个角色的属性。定义如下:

 public class AuthorizeRolesAttribute : AuthorizeAttribute
    {
        public AuthorizeRolesAttribute(params string[] roles)
        {
            Roles = string.Join(",", roles);
        }
    }

用法是(例如)像这样:

    [AuthorizeRoles("Admin", "SuperAdmin")]
    public ActionResult CompanyContacts()
    {
        return View();
    }

另外,在web.config中我添加了下一行:

<system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
    </modules>
</system.webServer>

它仍然允许用户访问该方法。它甚至完全忽略了构造函数。默认属性工作得很好。好像我错过了什么。有什么建议?

感谢&#39;!小号

1 个答案:

答案 0 :(得分:0)

您的代码运行正常,如果您更改了用户角色,则必须注销并再次登录,因为旧凭据将一直有效,直到登录会话结束。