2017-07-06 63 views
0

我有一個使用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應用程序負責處理權限?

+0

這裏一定有別的東西。你可能在根目錄下有'default.aspx'或'index.aspx'文件嗎? – DavidG

+0

不,這些文件都不是 –

+0

看起來「家」是你的控制器,但什麼是orgbrowser? – Krishna

回答

0

解決的辦法是明確地給我的網頁在Windows服務器上的文件夾的AD安全組讀取權限。我對此並不滿意,因爲我認爲應該通過嚮應用程序池用戶提供這些權限來解決這個問題,但這並不奏效,也沒有涉及提供IUSR權限的任何事情。

相關問題