首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用active directory角色提供程序MVC4进行授权

使用active directory角色提供程序MVC4进行授权
EN

Stack Overflow用户
提问于 2013-12-21 00:19:18
回答 1查看 19.7K关注 0票数 16

我正在构建一个供企业环境内部使用的MVC4应用程序。我使用windows身份验证,它工作得很好,但我在使用Active Directory组作为授权角色时遇到了问题。

我的Web.config看起来像这样:

代码语言:javascript
运行
复制
<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>

当我使用用户授权时,它工作得很好:

代码语言:javascript
运行
复制
[Authorize(Users = @"DOMAIN\User1, DOMAIN\User2")]
public ActionResult Create()
{
    return View();
}

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

代码语言:javascript
运行
复制
[Authorize(Roles = @"Domain\Group")]
public ActionResult Create()
{
    return View();
}

我也试着在没有域名的情况下指定组,就像我在其他回复中看到的那样,但没有成功……我想我在Web.config中遗漏了什么,但我不确定是什么.

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

有人能帮我吗?

提前感谢!

EN

Stack Overflow用户

回答已采纳

发布于 2014-01-09 23:45:03

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

不过,我让它像这样工作:

代码语言:javascript
运行
复制
[Authorize(Roles = "Domain\\Group")]
public ActionResult Create()
{
    return View();
}

问题出在我输入分组的方式。

我希望这能帮助其他人。

票数 20
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20707758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档