【问题标题】:Why can't users access my website via the root link?为什么用户不能通过根链接访问我的网站?
【发布时间】:2017-07-06 11:01:13
【问题描述】:

我有一个使用 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 用户,然后网络应用负责权限吗?

【问题讨论】:

  • 这里一定有别的东西。您的根目录中是否有default.aspxindex.aspx 文件?
  • 不,没有这些文件
  • 似乎“家”是您的控制器,但 orgbrowser 是什么?
  • 这是运行应用程序的虚拟目录。这是我的应用程序的根

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多