为什么用户无法通过根链接访问我的网站?

时间:2017-07-06 11:01:14

标签: asp.net asp.net-mvc iis

我有一个使用Windows身份验证的asp.net MVC网站(4.5.1)。我允许访问某个AD安全组的用户。 AD Sec组也对我的SQL DB具有读访问权限。我的问题是,当该组中的用户尝试访问我的站点的根URL时,他们会收到401 Access Denied错误。但是,当他们直接访问页面(与根页面加载的页面相同)时,他们可以访问它们,没问题。

website.com/orgbrowser - > 401错误

website.com/orgbrowser/home - >没有错误

website.com/orgbrowser/home/search - >没有错误

我的routeconfig默认加载/ home / search。我的管理员用户没有出现错误,当我访问website.com/orgbrowser时,我正确显示/ home / search。

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Search", id = UrlParameter.Optional }
        );
    }

我在web.config中的安全设置:

<system.web>
  <compilation targetFramework="4.5.1" />
  <customErrors mode="Off" />
  <httpRuntime targetFramework="4.5.1" />
  <authentication mode="Windows" />
  <authorization>
    <allow roles="ADSec Group Name"/>
    <deny users="*" />
  </authorization>
</system.web>

我的路由配置(或我的asp.net代码中的其他任何地方)我做错了什么,或者这可能是IIS或SQL安全设置的问题?

编辑:我已经为我的服务器上包含该网页的文件夹提供了AD安全组读取权限。现在它有效。我是否应该明确地向用户授予这些权限?我不应该只是添加App Pool用户,而web-app会处理权限吗?

1 个答案:

答案 0 :(得分:0)

解决方案是明确授予AD安全组对Windows服务器上我的网页文件夹的读取权限。我对此并不满意,因为我认为这应该通过向应用程序池用户提供这些权限来解决,但这不起作用,也没有涉及授予IUSR权限的任何内容。