2010-03-10 39 views
5

A) Tôi muốn để có thể hỗ trợ bảo vệ mật khẩu của tôi RSS feed thông qua các phương pháp xác thực sau:thực hiện bảo đảm tiền RSS Feeds

HTTP Basic Integrated Windows (NTLM/Kerberos) Digest

1 Làm thế nào tôi có thể làm điều đó trong asp.net mvc

B) Đọc qua đặc tả RSS 2.0, tôi không thấy gì liên quan đến bảo mật, vì vậy tôi cho rằng bảo mật được thực hiện cho nguồn cấp dữ liệu RSS được xử lý trên một đầu bởi web máy chủ xử lý yêu cầu HTTP cho nguồn cấp dữ liệu RSS, và ở đầu bên kia của máy khách yêu cầu quyền truy cập vào nguồn cấp dữ liệu RSS. Khách hàng nên thu thập tên người dùng và mật khẩu và đưa thông tin đó vào yêu cầu tới máy chủ. Tôi tò mò muốn biết làm thế nào (hoặc nếu) các trang web như UserLand, hoặc ASP.NET Weblog cung cấp mật khẩu bảo vệ RSS nguồn cấp dữ liệu, và ở phía bên kia của hàng rào, làm thế nào là tập hợp RSS như NewsGator, NewzCrawler, SharpReader, vv xử lý mật khẩu nguồn cấp dữ liệu RSS được bảo vệ?

Trả lời

2

RSS không có bất kỳ bảo mật nào. Bạn có thể khai thác ASP.NET MVC bằng cách tạo một ActionResult tùy chỉnh, có thể cung cấp xác thực, với xác thực biểu mẫu, nhưng bạn có thể thấy ý tưởng.

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 
     } 
    } 
} 
+1

Bạn có thể giải thích tại sao tốt hơn là xác thực khi thực hiện kết quả, thay vì xác thực (in) hành động của bộ điều khiển trực tiếp? Xác thực không phải là vốn có để RssActionResult, vì nó không phải là để ViewResult hoặc JsonResult (và đây là lý do tại sao MVC không thực hiện xác thực khi thực hiện các kết quả, tôi tin) – Marek

+0

@Marek, điểm tốt. Tôi vừa mới đưa ra một ví dụ. Tôi chưa bao giờ có nhu cầu bảo mật RSS vì tôi thấy rất nhiều vấn đề đặt ra. Tuy nhiên, sử dụng RSSActionFilter làm nguồn cấp dữ liệu của bạn sẽ cho phép xác thực xảy ra, bất cứ nơi nào có thể xảy ra. –

Các vấn đề liên quan