我有一个使用Windows身份验证的asp.net MVC网站(4.5.1)。我允许某个AD安全组的用户访问。 AD Sec组也具有对我的SQL数据库的读取权限。我的问题是,当该组中的用户尝试访问我的网站的根网址时,他们会收到401访问被拒绝错误。但是,当他们直接访问页面(与根页面加载的页面相同)时,他们可以访问它们,没有问题。为什么用户不能通过根链接访问我的网站?
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安全组读取权限。现在它可以工作。我是否必须明确地向用户提供这些权限?我不应该只需添加应用程序池用户,并且Web应用程序负责处理权限?
这里一定有别的东西。你可能在根目录下有'default.aspx'或'index.aspx'文件吗? – DavidG
不,这些文件都不是 –
看起来“家”是你的控制器,但什么是orgbrowser? – Krishna