2012-03-03 75 views
0

基本上我想在我的共享主機配置訪問特定的文件夾,我就以此爲指南:http://support.microsoft.com/kb/316871web.config文件和目錄的訪問

我的web.config的這一部分:

<system.web> 
    <authorization> 
    <deny users="?"/> 

    </authorization> 
    <authentication mode="Forms"> 

    <forms name="Authlogin" loginUrl="logon.aspx" protection="All" timeout="60" path="." /> 

    </authentication> 

因此,如果用戶未經授權,他將被重定向到logon.aspx。 該解決方案在Visual Studio測試服務器上運行良好,用戶可以重定向到logon.aspx,但它在我的共享主機(godaddy)上根本不起作用。似乎規則只是被忽略了。 任何想法如何使其工作......或爲什麼它不能在託管?

編輯 我發現,如果我請求任何任何ASP頁(ASHX,apsx,ASMX),那麼我會被重定向到logon.apsx.But如果我將請求的任何文件(HTML,TXT的, jpg和ect),那麼表單認證將被忽略。 同樣的事情發生在本地IIS 7.5

+0

可能會嘗試更改此:'loginUrl =「〜/ logon.aspx」' – Mubarek 2012-03-03 21:54:37

+0

謝謝你的建議。我試過了,它不起作用。認爲我需要重寫machine.config中的一些規則。此外,我安裝本地計算機上的IIS,並嘗試我的項目there.No運氣..身份驗證不重定向到logon.aspx和不會阻止匿名users.It像服務器配置中的問題... – user1247309 2012-03-03 22:31:10

回答

0

我發現了問題和解決方案。問題什麼IIS和ASP.NET只控制asp.net頁面。所以啓用IIS來查看所有文件,我做了這個更改在網絡上。配置 首先,我在system.webserver加入這個

<modules> 
     <remove name="FormsAuthenticationModule" /> 
     <add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" /> 
     <remove name="UrlAuthorization" /> 
     <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> 
     <remove name="DefaultAuthentication" /> 
     <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" /> 
</modules> 

這將使IIS與ASP.NET表單認證工作(這是我如何理解它=))) 當我加入這個在同一system.webServer

<security> 
     <authorization> 
     <remove users="*" roles="" verbs="" /> 
     <add accessType="Deny" users="?"/> 
     <add accessType="Allow" users="*"/> 
     </authorization> 

我希望我的解決方案將幫助任何一個相同的問題