ASP.NET MVC - создание RSS-канала, который требует аутентификации - PullRequest
2 голосов
/ 07 июля 2010

Я создал элементарный RSSActionResult в ASP.NET MVC для создания RSS-канала на основе новых товаров в моем интернет-магазине - новых товаров, товаров для продажи и т. Д. Эта часть была простой и хорошо работала.

Я бы хотел пойти еще дальше и создать фид для конкретного пользователя. Например - показать пользователям новые продукты, представляющие интерес на основе их предыдущей истории покупок. Этот канал зависит от пользователя, и для просмотра этой информации обычно необходимо войти в свою учетную запись (членство в asp.net). У меня вопрос, как членство работает на уровне RSS? В MVC я могу легко создать фильтр действий, который требует, чтобы пользователь вошел на сайт, чтобы подписаться на канал, но я не уверен, возможно ли это в программе чтения каналов. Когда я просматриваю канал в встроенном считывателе IE8 и не вошел в свою учетную запись, я получаю следующее сообщение:

Ленты с DTD не поддерживаются

Что я пытаюсь сделать, даже возможно? Любое руководство будет высоко ценится.

Заранее спасибо,

JP

Ответы [ 2 ]

4 голосов
/ 07 июля 2010

Мне кажется, что частные RSS-каналы являются чем-то вроде серой области, и поддержка как новостных, так и новостных программ ограничена Прочитайте, например, this .

В этом ТАК вопрос обсуждаются различные способы реализации такого сервиса. Чтобы быть на 100% совместимым, я просто сгенерировал бы уникальный токен для каждого клиента и попросил их подписаться на него. Учитывая, что фактическая личная информация не раскрывается (мы не будем вдаваться в обсуждение деанонимизации), я думаю, что это достаточно хорошо.

В сочетании с ограничением скорости для предотвращения угадывания токена, я думаю, что это приемлемое решение. Кроме того, это может быть включено и отключено пользователем для тех, кто больше заботится о безопасности.

1 голос
/ 07 июля 2010

Я никогда не пробовал это с RSS, но вы пробовали использовать "атрибут авторизации"

    [Authorize(Users="Stephen")]
    public RSSActionResult StephenRss()
    {
        return View();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...