2016-07-13 66 views
0

我已經在ASP.NET中遞交了一個Web項目。它包含一個Content文件夾和一個index.html文件。目前,人們可以去mysite.com/content/index.html。這個項目中沒有MVC控制器(我沒有自己製作)。對文件夾不起作用的表單身份驗證

我不希望人們直接進入HTML頁面。我在我的網站的根目錄上有一個登錄頁面(所以mysite.com),所以我想在那裏重定向用戶,如果他們沒有登錄。我用Index方法創建了我自己的HomeController。我已經設置了ASP.NET身份來授予對該方法的所有請求。我想設置表單身份驗證,將所有未經授權的請求重定向到Content文件夾及其內容到/ Home/Index(或簡單地稱爲網站根/)。

我發現本網站上幾個答案和其他地方很相似: 在該網站的根目錄的Web.config,我有這樣的代碼:

<configuration> 
     <location path="~/Content"> 
     <system.web> 
      <authorization> 
       <deny users="?" /> 
      </authorization> 
     </system.web> 
     </location> 

    <!-- some other nodes --> 

    <system.web> 
     <authentication mode="Forms"> 
      <forms name=".ASPXAUTH" loginUrl="/" /> 
     </authentication> 
    </system.web> 
</configuration> 

但是,這並不工作,如果我去mysite.com/content/index.html我沒有重定向到mysite.com。我也嘗試在不同的web.config文件中拆分這些文件,如this的答案中所述。我究竟做錯了什麼?

回答

1

不涉及靜態內容(html)的mvc管道。

將此行添加到項目web.config文件中的system.webServer serction。

<modules runAllManagedModulesForAllRequests="true"> 
+0

爲我工作!非常感謝,很多答案都沒有提到這一部分。 – ohyeah