AuthorizeAttribute检查哪个对象?

时间:2017-07-21 06:49:03

标签: asp.net-mvc authorize-attribute

我试图在我的ASP.NET MVC应用程序中使用AuthorizeAttribute但我不明白它是如何工作的。当我在家庭控制器的索引操作中设置用户(仅用于测试目的)时,我给他"管理员"角色。然后我检查用户的属性IsInRole,它显示当前用户在"管理员"角色。但是当我尝试使用Roles = "Admin"访问AuthorizeAttribute修饰的操作时,我被重定向到登录页面。所以我的问题是,AuthorizeAttribute正确检查了哪个对象 - 如果它不是用户对象,那么它是什么?我的代码:

public ActionResult Index()
{
    HttpContext.User = new GenericPrincipal(new GenericIdentity("User1"), new[] { "Admin" });

    var isAdmin = User.IsInRole("Admin"); // shows "true" on breakpoint

    return View();
}

[Authorize(Roles = "Admin")]
public ActionResult Contact() // cannot get access to this action
{
    return View();
}

0 个答案:

没有答案