我有一个将在内部使用的Web应用程序,它通过Windows身份验证进行身份验证。 <authentication mode="Windows" />
位于网络配置
我有两个角色 - 全部和一个 - 可以访问应用中的不同页面:
[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();
}
理想情况下,每个人都可以看到主页,所有人都可以看到AllPage和OnePage,而One只能看到OnePage而不是AllPage
我有两个用户,AllUser和OneUser,每个用户都在各自的组中。问题是无论谁登录,一切都是未经授权的。授权永远不会成功。我已经在线尝试了很多教程如何设置它,但没有一个有效。这真的不应该那么复杂,但我不能让这个为我的生活工作。
我尝试过的事情:
Roles = "Domain\\All"
)
如果有人对此有一些指导或帮助,我将非常感激。
答案 0 :(得分:0)
要启用角色管理,请检查以下链接:http://www.codeproject.com/Articles/799571/ASP-NET-MVC-Extending-ASP-NET-Identity-Roles
对于Windows身份验证,您需要模拟:https://msdn.microsoft.com/en-us/library/ff647405.aspx
答案 1 :(得分:0)
所以我觉得自己有点白痴。事实证明,问题根本不在于我的代码 - 这是维护AD组的人。他们给了我错误的组名,这就是为什么它从未被认证过。一旦我输入正确的组名,一切都会成功。
值得一提的是,因为这些是Active Directory环境中的组,所以我必须在组名前面指定域 - 但除此之外,代码很好。我原以为这就是这么简单,因此我对它为什么不工作感到沮丧。