asp.net-mvc-4 - 使用 Active Directory 角色提供程序 MVC4 进行授权

标签 asp.net-mvc-4 web-config authorization roleprovider

我正在构建一个供公司环境内部使用的 MVC4 应用程序。我使用 Windows 身份验证,工作正常,但在使用 Active Directory 组作为授权角色时遇到问题。

我的 Web.config 如下所示:

<authentication mode="Windows" />        
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
  <providers>
    <clear />
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
  </providers>
</roleManager>        
<authorization>
  <deny users="?" />    
</authorization>

当我使用用户授权时,它工作正常:

[Authorize(Users = @"DOMAIN\User1, DOMAIN\User2")]
public ActionResult Create()
{
    return View();
}

但是当我使用角色时,它只是不允许该组中的用户访问此操作:

[Authorize(Roles = @"Domain\Group")]
public ActionResult Create()
{
    return View();
}

我还尝试指定没有域的组,就像我在其他回复中读到的那样,但没有运气...我想我在 Web.config 中遗漏了一些内容,但我不确定是什么...

我避免使用自定义角色提供程序,因为 MVC4 应该在没有自定义角色提供程序的情况下实现此目的(或者至少我是这么认为的)

谁能帮我解决这个问题吗?

提前致谢!

最佳答案

我发现了问题所在。阅读有关 machine.config here 的一些信息后我检查了我是否已经应用了正确的配置。

最后我让它像这样工作:

[Authorize(Roles = "Domain\\Group")]
public ActionResult Create()
{
    return View();
}

问题在于我输入组的方式。

我希望这可以帮助其他人。

关于asp.net-mvc-4 - 使用 Active Directory 角色提供程序 MVC4 进行授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20707758/

相关文章:

asp.net-mvc - 为什么我的操作方法没有超时?

c# - 为什么我的 ASP.NET MVC 4 应用程序创建新实体而不是更新旧实体?

asp.net - IIS 7.5 的 CORS 设置

asp.net - 编译调试 ="true"和 Release模式 "release"之间是否有任何关系

javascript - 从 javascript 调用操作方法时 Asp、Net MVC 应用程序的安全问题

asp.net-mvc - Razor @helper函数不呈现任何HTML

asp.net-mvc - 在 IIS 8 上设置 MVC 站点的默认路由

xml - Azure 上的 Elmah XML 日志文件

.net - 带有用于角色授权的空格的 AD 组

ios应用程序授权流程?