|
Доступ к кукам (Cookie) из ServiceHost (WCF .NET 3.0)
|
|||
---|---|---|---|
#18+
Поднимаю Веб-сервис (WebService) умеющий выполнять определенный набор команд. Для выполнения этой команды необходимо авторизоваться в "Системе-программе", которая стоит на этом же компе и написана самой фирмой (тоесть фактически реализуется доступ к "Системе-программе" через веб-сервисы). Пока небыло веб-сервисов, после авторизации клиенту отдавалась кука с записанным внутренним SessionId самой "Системы-программы", которая гонялась туда-сюда [кука], и по которой сервер узнавал клиента (вариант с удержанием обычной сессии не подходит, не у всех клиентов KeepAlive стоит в true). Таким образом клиент с каждым запросом сообщал серверу Id внутренней системноей сессии. Теперь сделали веб-сервисы, и нужно чтобы после авторизации в системе через веб-сервисы клиенту отдавалась кука, которая узнавалась бы сервером при следующих обращениях. Но [ServiceContract] классу, ничего про то, как его вызывают, неизвестно. Следовательно и про куки он тоже ничего не знает. Он просто выполняет команды. Была попытка реализовать свой ServiceAuthorizationManager для ServiceHost, где в CheckAccessCore приходит operationContext. Считывать Header, находить в них присланную клиентом куку и проводить авторизацию внутри системы. Но вот засада: в operationContext я не вижу кук хоть тресни!!! Кто подскажет как на уровне ServiceHost (ну или на уровне класса-сервиса, который этим хостом поднимается) получить возможность устанавливать и читать клиентские куки? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2007, 12:20 |
|
|
start [/forum/topic.php?fid=19&fpage=36&tid=1398059]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
30ms |
get tp. blocked users: |
2ms |
others: | 234ms |
total: | 380ms |
0 / 0 |