Внедрение безопасности для RSS-каналов - PullRequest
5 голосов
/ 10 марта 2010

A) Я хочу иметь возможность поддерживать защиту паролем моих RSS-каналов с помощью следующих методов аутентификации:

HTTP Basic Интегрированная Windows (NTLM / Kerberos) Дайджест

1) Как я могу это сделать в asp.net mvc

В) Читая спецификацию RSS 2.0, я не увидел ничего, связанного с безопасностью, поэтому я предполагаю, что безопасность, реализованная для канала RSS, обрабатывается с одной стороны веб-сервером, обрабатывающим HTTP-запрос для канала RSS, а с другой стороны - клиентом. запрашивая доступ к RSS-каналу. Клиент должен собрать имя пользователя и пароль и поместить эту информацию в запрос к серверу. Мне любопытно узнать, как (или если) такие сайты, как UserLand или ASP.NET Weblogs, предлагают защищенные паролем RSS-каналы, а с другой стороны, как агрегаторы RSS, такие как NewsGator, NewzCrawler, SharpReader и т. Д., Обрабатывают пароль защищенные RSS-каналы?

1 Ответ

2 голосов
/ 10 марта 2010

RSS не имеет встроенной защиты. Вы можете использовать ASP.NET MVC, создав пользовательский ActionResult, который может обеспечивать аутентификацию, это происходит с помощью аутентификации по формам, но вы можете понять идею.

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
        }
    }
}
...