2008-12-04 31 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进行了身份验证,并在控制器操作中使用该操作决定是否继续&允许访问。

相关问题