13
我正在构建一个公司环境内部使用的MVC4应用程序。我使用Windows身份验证,这工作正常,但我有麻烦使用Active Directory组作为授权角色。使用活动目录角色提供者的授权MVC4
我的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应该实现这没有一个自定义角色提供者(或至少这就是我想的)
任何人都可以帮助我吗?
提前致谢!
啊,双反斜杠!我一直在为此工作数小时 - 欢呼 – 2014-02-28 10:43:24
@ D.Mac - 它的标准C#字符串格式化/转义:“域\\组”或@“域\组”。 https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx –
是的,反弹不能是原因或语义差异,因为它只是一个语法问题 – Mzn