отправить куки браузера в веб-сервис - PullRequest
1 голос
/ 14 февраля 2010

У меня есть следующая архитектура:

1) клиент регистрируется на веб-сайте ASP.NET (www.site.com), где сеанс истек через 3000 минут, а для файла cookie установлено значение false.

2) Через некоторое время клиент открывает Activex в браузере. Activex подключается к веб-службе с поддержкой сеансов (www.site.com/Service.asmx) через управляемые классы .NET.

Что мне нужно сделать, это отправить куки, которые браузер получил во время аутентификации через веб-сайт. и если такой файл cookie не существует, то пользователь не проходит проверку подлинности, и подключение к веб-службе будет запрещено.

Я понимаю, что мне нужно использовать класс System.Net.CookieContainer, но как мне установить этот более широкий файл cookie для этого класса?

            localhost.WebService1 web = new localhost.WebService1();
        System.Net.CookieContainer cookie = new System.Net.CookieContainer();
        web.CookieContainer = cookie;

Вводит меня в совершенно новую сессию.

Пожалуйста, помогите.

С уважением, Дэнни.

1 Ответ

1 голос
/ 14 февраля 2010

Элемент управления ActiveX является совершенно отдельным процессом и каждый раз будет создавать свой собственный сеанс. Несмотря на то, что он использует тот же браузер, что и его контейнер, он в основном похож на запуск отдельного приложения для подключения к веб-сервису. Чтобы обойти это, идея состояла бы в том, чтобы передать какой-то чувствительный ко времени ключ / Guid к элементу управления ActviceX (отправленный элементу управления ActiveX через javascript). Этот ключ (сохраненный в базе данных, созданной страницей) может быть передан WebService и проверено?

...