ASP.NET MVC: как добавить аутентификацию в RSS-каналы? - PullRequest
2 голосов
/ 15 мая 2010

Я видел несколько примеров того, как создавать RSS-каналы с помощью ASP.NET MVC, либо путем создания Action, либо через HttpHandler.

Мне нужно аутентифицировать фиды, и мне интересно, как это сделать (и поддерживается программами чтения RSS, а не просто переходом на страницу / xml через браузер) и как будут отличаться аутентификации между действием MVC или HttpHandler?

Ответы [ 3 ]

1 голос
/ 15 мая 2010

Самый простой способ - дать каждому клиенту уникальный URL. поэтому в этом случае вы всегда будете знать, кто запрашивает канал.

http://site.com/rss/<some_secret_hash_here>

с другой стороны - вы можете использовать URL со стандартным пользователем: пара паролей, например:

http://user:password@site.com/rss/blabla.xml

и просто разобрать пользователя: пароль.

Я предпочитаю использовать первый.

0 голосов
/ 15 мая 2010

и поддерживается программами чтения RSS, а не просто просматривает страницу / xml посредством просмотра

Я ожидаю, что большинство читателей будут поддерживать типичную (базовую и дайджест) аутентификацию.Например, каналы Twitter требуют аутентификации.

0 голосов
/ 15 мая 2010

Есть несколько способов сделать это.

Лучший подход, по моему мнению, заключается в использовании архитектуры REST с учетными данными в пути или в качестве данных после передачи данных (предпочтительнее 1-й подход).

1-й подход:

Step1: GET http://www.myserver.com/myfeed.rss/username/query => это должно вернуть случайное значение Шаг 2: GET http://www.myserver.com/myfeed.ress/username/hashed-password => Ожидаемый хешированный пароль от клиента: hash(<random-value>+<password>).

Это послужит двум целям:

  1. Оригинальный пароль никогда не передается по проводам
  2. Случайное значение гарантирует, что хеш является уникальным и, следовательно, не может быть повторно использован.

Возможно, вы захотите установить дату и время истечения для комбинации имя пользователя + случайное значение с другими действиями безопасности, связанными с IP, чтобы гарантировать невозможность перехвата сеанса.

EDIT:

Использовать обработчик HTTP для path="myfeed.rss" с verbs="GET" в web.config

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...