我正在构建一个供企业环境内部使用的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应该在没有自定义角色提供程序的情况下实现这一点(或者至少我是这么想的)
有人能帮我吗?
提前感谢!
发布于 2014-01-09 23:45:03
我找到了问题所在。在阅读了一些关于machine.config here的信息后,我检查了我是否已经应用了正确的配置。
不过,我让它像这样工作:
[Authorize(Roles = "Domain\\Group")]
public ActionResult Create()
{
return View();
}问题出在我输入分组的方式。
我希望这能帮助其他人。
https://stackoverflow.com/questions/20707758
复制相似问题