实现Rss源的安全性

Sag*_*gar 5 security rss asp.net-mvc feed

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

HTTP基本集成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源?

Dus*_*ine 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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)