2014-10-05 161 views
1

我正在使用Asp.Net Identity。我需要允許管理員和拒絕用戶訪問我的管理文件夾中的所有頁面,所以我在該文件夾中放置了一個web.config文件。如何防止用戶訪問文件夾中的文件?

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <authorization> 
     <allow roles="Admin"/> 
     <deny users="*" /> 
     </authorization> 
    </system.web> 
</configuration> 

但任何人仍然可以訪問文件夾中的所有文件。我也試着把它放到帶有位置標籤的主配置文件中,但沒有結果。你有什麼想法從哪裏開始尋找問題?

更新:我發現在asp.net論壇的一個問題它解釋了很多: http://forums.asp.net/t/1955560.aspx?ASP+NET+Identity+Are+web+config+files+no+longer+acting+in+the+capacity+of+a+security+guard+for+our+ASP+NET+applications+files+and+folders+ 還有一兩件事要提。使用asp.net標識創建新的Web應用程序項目時。的Visual Studio 2013中設置這些參數:

<system.web> 
    <authentication mode="None"/> 
</system.web> 

<system.webServer> 
    <modules> 
    <remove name="FormsAuthenticationModule" /> 
    </modules> 
    <system.webServer> 
+0

可以編輯問題來解釋你的意思是什麼「它不工作」?發生了什麼,你認爲應該發生什麼? – 2014-10-05 18:28:16

+0

更新,任何想法? – xbilek18 2014-10-06 17:11:46

回答

0

試試這個

<configuration> 

    <system.web> 

    <authentication mode="Forms"/> 
    <authorization> 
     <deny users="?"/> 

    </authorization> 
    </system.web> 

    <location path="[mymanagementfolder]"> 
    <system.web> 
     <authorization> 
     <deny users ="?" /> 
     <allow users ="*" /> 
     </authorization> 
    </system.web> 
    </location> 

</configuration> 

MSDN SOURCE

如果目錄瀏覽在啓用IIS,那麼你應該把它OFF

編輯: 我想你應該啓用Form/windows authentication。上面的代碼是我的電腦上工作正常,因爲它重定向到ReturnUrl

My Test output

+0

它不起作用。 – xbilek18 2014-10-05 14:45:42

+0

@JanBílek是在IIS中啓用目錄瀏覽? – 2014-10-05 14:51:04

+0

不,它被禁用。 – xbilek18 2014-10-05 14:52:07

0

改變你的代碼** **它阻止未認證的任何用戶:

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <authorization> 
     <allow roles="Admin"/> 
     <deny users="?" /> 
     </authorization> 
    </system.web> 
</configuration> 
+0

可悲的是,沒有結果。 – xbilek18 2014-10-05 14:40:23