实现Rss源的安全性

时间:2010-03-10 07:56:42

标签: asp.net-mvc security rss feed

A)我希望能够通过以下身份验证方法支持RSS源的密码保护:

HTTP Basic 集成Windows(NTLM / Kerberos) 消化

1)我怎么能在asp.net mvc

中做到这一点

B) 阅读RSS 2.0规范,我没有看到任何与安全性相关的内容,因此我假设为RSS源实现的安全性由处理RSS源的HTTP请求的Web服务器一端处理,另一端由客户端处理请求访问RSS源。客户端应收集用户名和密码,并将该信息放入对服务器的请求中。我很想知道UserLand或ASP.NET Weblogs等网站如何(或者是否)提供受密码保护的RSS提要,而另一方面,如RSSAd聚合器如NewsGator,NewzCrawler,SharpReader等处理密码受保护的RSS源?

1 个答案:

答案 0 :(得分:2)

RSS没有内置任何安全性。您可以通过创建自定义ActionResult来利用ASP.NET MVC,它可以提供身份验证,这可以使用表单身份验证,但您可以看到这个想法。

public class RssActionResult : ActionResult
{
    public SyndicationFeed Feed { get;set; }

    public override void ExecuteResult(ControllerContext context)
    {
        if (context.HttpContext.Current.User.Identity.IsAuthenticated)
        {
            context.HttpContext.Response.ContentType = "application/rss+xml";
            Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(Feed);
            using (XmlWriter writer = XmlWriter.Create(context.HttpContext.Response.Output))
            {
                rssFormatter.WriteTo(writer);
            }
        }
        else
        {
            //Whatever, not authenticated
        }
    }
}