2015-06-20 66 views
0

我有一个将在内部使用的Web应用程序,它通过Windows身份验证进行身份验证。 <authentication mode="Windows" />是在web配置MVC角色授权不适用于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"
  • 设置授权仅在web配置
  • 同时在web配置设置授权并在MVC控制器
  • 如果任何人有一些指导或帮助,我会很感激。

    回答

    0

    所以我觉得好像有点白痴。事实证明,这个问题与我的代码完全不同 - 它是维护AD组的人员。他们给了我错误的组名,这就是为什么它从未认证。一旦我输入了正确的组名,一切都会奏效。

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