Поддержание состояния сеанса при использовании XElement.Load - PullRequest
1 голос
/ 31 мая 2011

Мое веб-приложение ASP.NET использует внутренний канал RSS, который использует идентификацию текущего пользователя, вошедшего в систему, для настройки его содержимого. RSS-канал генерируется стандартным обработчиком .ashx в моем приложении.

Когда я вызываю RSS-канал с использованием XElement.Load(rssFeedUri), состояние сеанса не поддерживается (предположительно, потому что файл cookie идентификатора сеанса не отправляется с запросом).

Канал RSS работает, как задумано, при вызове непосредственно из адресной строки браузера для вошедшего в систему пользователя. Я уже гарантировал, что мой обработчик реализует IRequiresSessionState, так что если идентификатор сеанса передается службе, я могу получить доступ к данным сеанса.

Используя отладчик Visual Studio, я определил, что новый сеанс создается при доступе к моему каналу через XElement.Load.

Как я могу загрузить свой RSS-канал и убедиться, что ему доступно состояние сеанса?

1 Ответ

2 голосов
/ 31 мая 2011

Вы можете сделать следующие шаги:

  1. Используя класс WebClient, загрузите содержимое URL-адреса RSS в строку. При использовании этого класса WebClient установите значение заголовка Cookie-запроса таким же, как и текущий заголовок Cookie-файла веб-запроса с идентификатором сеанса и т. Д.
  2. Создать String Reader из строки, которую вы получили выше
  3. использовать XElement.Load (str_reader)

Я надеюсь, что это решит вашу проблему

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