【发布时间】:2016-02-29 08:30:13
【问题描述】:
我们有一个 MVC 5 Identity 2 项目。如何限制管理员对控制器的访问?当 Admin 用户访问下面的控制器时,会提示他们登录,但是通过 CTOR 会出现无限循环
[Authorize(Roles = "Admins")]
public class AdminController : Controller
{
private ApplicationSignInManager _signInManager;
private ApplicationUserManager _userManager;
public AdminController()
{
}
public AdminController(ApplicationUserManager userManager, ApplicationSignInManager signInManager)
{
UserManager = userManager;
SignInManager = signInManager;
}
public ApplicationSignInManager SignInManager
{
get
{
return _signInManager ?? HttpContext.GetOwinContext().Get<ApplicationSignInManager>();
}
private set
{
_signInManager = value;
}
}
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
但是,如果我将 [Authorize(Roles = "Admins")] 更改为 [Authorize],它可以正常工作。如何限制管理员访问此控制器?
【问题讨论】:
-
也许您的角色名称是“Admin”而不是“Admins”。
-
谢谢@tmg,但角色绝对是管理员。
标签: asp.net-mvc asp.net-identity