【发布时间】: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.aspx或index.aspx文件? -
不,没有这些文件
-
似乎“家”是您的控制器,但 orgbrowser 是什么?
-
这是运行应用程序的虚拟目录。这是我的应用程序的根
标签: asp.net asp.net-mvc iis