MVC 角色授权不适用于 windows 帐户

MVC Role Authorization not working for windows accounts

我有一个将在内部使用的网络应用程序,它通过 Windows 身份验证进行身份验证。 <authentication mode="Windows" /> 在网络配置中

我有两个角色 - All 和 One - 可以访问应用程序中的不同页面:

[HttpGet]
public ActionResult Home()
{
    return View();
}

[HttpGet]
[Authorize(Roles = "All")]
public ActionResult AllPage()
{
    return View();
}

[HttpGet]
[Authorize(Roles = "All, One")]
public ActionResult OnePage()
{
    return View();
}

理想情况下,每个人都可以看到主页,所有人都可以看到所有页面和单页,而一个人只能看到单页,而不能看到所有页面

我有两个用户,AllUser 和 OneUser,每个用户都在各自的组中。问题是无论谁登录,一切都是未经授权的。授权永远不会成功。我已经尝试了很多在线教程来了解如何设置它,none 已经奏效了。这真的不应该那么复杂,但我无法让它为我的生活工作。

我尝试过的事情:

  • 指定组前面的域(即Roles = "Domain\All"
  • 仅在网络配置中设置授权
  • 在 Web 配置和 MVC 控制器中设置授权
  • 如果有人对此有任何指导或帮助,我将不胜感激。

    要启用角色管理,请检查此 link:http://www.codeproject.com/Articles/799571/ASP-NET-MVC-Extending-ASP-NET-Identity-Roles

    对于 windows 身份验证,您需要模拟:https://msdn.microsoft.com/en-us/library/ff647405.aspx

    所以我觉得自己有点像个白痴。原来问题根本不在我的代码上——而是在维护 AD 组的人身上。他们给了我错误的组名,这就是它从未通过身份验证的原因。一旦我输入了正确的组名,一切就迎刃而解了。

    值得一提的是,因为这些是 Active Directory 环境中的组,所以我确实必须在组名前面指​​定域 - 但除此之外,代码还不错。我原以为它就是这么简单,因此我对它为什么不起作用感到沮丧。