2010-08-03 71 views
1

我有一個使用表單身份驗證的網站。大多數情況下,我的網站需要身份驗證才能執行任何操作。我的隱私聲明頁面是例外情況,必須由匿名用戶訪問。 的頁面是一個文件夾中,我已經設置在web.config中的位置路徑信息如下:匿名訪問aspx頁面失敗

<location path="about"> 
    <system.web> 
     <authorization> 
      <allow users="*"/> 
     </authorization> 
    </system.web> 
</location> 
<location allowOverride="true"> 
    <system.web> 
     <authentication mode="Forms"> 
      <forms name="FDAuth" 
        cookieless="UseCookies" 
        protection="All" 
        loginUrl="login.aspx" 
        requireSSL="false" 
        slidingExpiration="false"></forms> 
     </authentication> 
     <authorization> 
      <deny users="?"/> 
     </authorization> 
    </system.web> 
</location> 

該配置允許其他文件類型匿名訪問,但是仍然會提示輸入登錄的aspx頁面。

換句話說,允許匿名訪問此頁

www.mywebsite.com/about/privacy.asp

,但我去到Login.aspx頁,如果我嘗試訪問上網本

www.mywebsite.com/about/privacy.aspx

什麼我需要做的,允許 www.mywebsite.com/about/privacy.aspx匿名訪問?

回答

0

還有一兩件事:添加行<allow users="?"/>

*用戶匹配任何身份驗證的用戶名,而?比賽所有未經驗證的人。

所以,你會這樣:

<location path="about"> 
    <system.web> 
     <authorization> 
      <allow users="*"/> 
      <allow users="?"/> 
     </authorization> 
    </system.web> 
</location> 
+0

感謝您的回覆,但是做出這樣的改變並沒有解決問題。 – jeffc 2010-08-03 19:03:26

1

剛內取出<location allowOverride="true">元素和配置<authorization/><system.web/>

<location>標籤被用來定義例外全球政策,這通常是在定義<authorization/><system.web/>之內。

+0

這就是我最初的樣子,但基於這個答案改變了它類似的問題http://stackoverflow.com/questions/1354185/how-do-i-grant-anonymous-access-to-a-url- using-formsauthentication兩種方式都不允許匿名訪問/about/privacy.aspx頁面 – jeffc 2010-08-03 19:05:40

0

你應該嘗試:

<location path="about"> 
    <system.web> 
     <authorization> 
     <allow users="?"/> 
     </authorization> 
    </system.web> 
</location> 

this MSDN example

注意?而不是用於匿名訪問的*

這應該可以解決你的問題,但如果沒有你可以指定一個特定的資源:

<location path="about\privacy.aspx"> 
+0

感謝您的回覆,但將*更改爲?沒有解決問題。 – jeffc 2010-08-03 19:07:41

+0

@jeffc你是否嘗試指定像我提到的確切文件?另外,請確保您沒有任何兒童網站。配置文件可能會覆蓋你當前的設置。 – Kelsey 2010-08-03 20:15:13

0

明白了。問題在於該頁面使用母版頁。將母版頁移動到about文件夾解決了問題。

感謝快速回復!

+0

這是最終答案? – bgmCoder 2013-04-30 16:28:00