我有一個使用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