2008-12-04 65 views
5

這裏是我的目錄佈局爲我的觀點簡單概述:允許訪問與ASP-MVC特定頁面和窗體身份驗證

項目

  • 第2頁
  • RSS

問題

  • 第2頁
  • RSS

我使用窗體身份驗證,以拒絕訪問所有未經授權的用戶,工作正常。然而,我希望能夠授予訪問RSS的意見給大家(所以他們可以通過谷歌閱讀器和東西訂閱)

據我所知,您可以授予訪問頁面,通過添加以下頁面到您的web.config

<location path="TOURPAGE.aspx"> 
<system.web> 
    <authorization> 
    <allow users="*" /> 
    <allow users="?" /> 
    </authorization> 
</system.web> 

不過,我會怎麼做這與我的動態進行的URL,如:

Issues/RSS/chrisj 
  • 這個路徑映射到問題控制器稱爲RSS,這需要用戶名和吐出的thier問題的RSS ...

編輯

一些答案,我還以爲有固定的,但:

看來,至少在我的情況下,你仍然需要認證cookie才能看到頁面。只要你有cookie,你可以註銷並查看它。

這對我來說並不好,我需要該頁面完全公開,因爲它是一個RSS源。

回答

3

這實際上比我想象的要簡單得多。似乎.NET是相當聰明,我試過如下:

<location path="Issues/RSS"> 
<system.web> 
    <authorization> 
    <allow users="*" /> 
    <allow users="?" /> 
    </authorization> 
</system.web> 

和它的工作:)

+0

grr,你打我:) – 2008-12-04 15:40:14

1
<location path="/Issues/RSS/"> 
<system.web> 
<authorization> 
<allow users="*" /> 
</authorization> 
</system.web> 
</location> 

編輯:這部作品的方式的原因,是因爲.NET是假設URL進入到一個目錄下,以上這個位置標籤說「在任何‘問題/ RSS’目錄是安全的,因爲預期:)

+0

無論如何有一個正確的答案:p – qui 2008-12-04 16:14:03

0

這可能無法正常工作。

看來,至少在我的情況下,你仍然需要認證cookie才能看到頁面。只要你有cookie,你可以註銷並查看它。

這對我來說並不好,我需要該頁面完全公開,因爲它是一個RSS源。

0

我同意查理諾的[授權]標籤可能會解決您的問題。

如果您對RSS和頁面使用單個控制器操作(並且僅基於某個參數呈現不同的ActionResult),則可以檢查用戶是否使用HttpContext.Current.User.Identity.IsAuthenticated進行了身份驗證,並在控制器操作中使用該操作決定是否繼續&允許訪問。

相關問題