2011-12-27 82 views
1

我正在构建使用当前用户的AD凭据访问系统的本地Intranet Web应用程序。我的网络服务器在Server 2008上运行IIS 7.5。mvc3 windows身份验证返回401.0未授权

我的AD配置了两个组Users(用户和管理员),我想要访问我的Web应用程序,并添加了两个组(读取/执行权限)到我在IIS中的目录。我的web.config是非常标准的,我的Global.asax文件中没有任何额外的过滤器。

我能够访问我的应用程序,如果我使用我的用户或管理员帐户,但我的同事不能,这进一步复杂化。我的帐户对文件夹没有任何权限 - 只有他们所属的组。

验证模式设置为Windows,但不幸的是千方百计为我的同事访问网站失败,出现以下:

HTTP Error 401.0 - Unauthorized 
You do not have permission to view this directory or page. 

的“最可能的原因”框提示:

The authenticated user does not have access to a resource needed to process the request. 

我无法弄清楚这一点。如果我创建一个示例mvc3应用程序并将其部署在同一个目录中,我可以像任何用户一样对页面进行身份验证和查看。

回答

2

可能有很多原因。

  1. 你的控制器需要有适当的授权属性被装饰得像以下

    [授权(角色=“管理员”)

  2. 在你的web.config,你需要有下面的代码您的System.Web配置内部

    <roleManager enabled="true" defaultProvider="YourRoleProvider">

  3. 最后你需要看到,如果该用户已添加到他们各自的角色

+0

粉笔这到假期后三福。我把我的控制器功能锁得太紧了。一旦将这些组添加到global.asax中的AuthorizeAttribute中,并从控制器中删除授​​权,一切都很好! – messedupfir 2011-12-27 06:31:42

+0

好你把事情整理好了..新年快乐 !! :-) – 2011-12-27 06:36:24

0

我在MVC 4有同样的问题,我已经用这个解决它:

[AllowAnonymous] 

(控制器中添加此行,上面的行动,你打电话时出现此错误。)

0

我想完全相同的问题,我低头找出解决方案。经过几个小时的研究,似乎是解决这个问题的非常简单的方法。

<system.webServer> 
    <modules> 
     <!--<remove name="FormsAuthentication" />--> 
    </modules> 
</system.webServer> 

我倒是从中被默认添加在创建默认MVC网站在Web.config文件模块属性中删除<remove name="FormsAuthentication" />声明。

希望它能拯救别人的时间和精力!