Как определить, какой протокол веб-службы использует запрос ASP.NET? - PullRequest
0 голосов
/ 23 апреля 2009

У меня есть веб-служба ASP.NET (1.1), которая проверяет подлинность клиентов с помощью переопределения SoapExtension.ProcessMessage (SoapMessage), как описано в:

http://www.codeguru.com/columns/experts/article.php/c5479

Однако если web.config, если он не настроен таким образом, что HttpSoap является единственным разрешенным протоколом, ProcessMessage никогда не будет вызываться для запросов, поступающих по другим протоколам, и, следовательно, обходить защиту.

Есть ли какой-либо способ программно гарантировать, что SOAP используется (в отличие от правильного использования web.config)?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 15 января 2010

Если это кому-нибудь пригодится, я проверю:

Request.ServerVariables["HTTP_SOAPAction"] != null

, который не идеален, но, кажется, добился цели.

0 голосов
/ 27 апреля 2009

Вы можете попытаться прочитать и проанализировать файл web.config при запуске, чтобы увидеть, установлен ли он так, как вы хотите.

0 голосов
/ 23 апреля 2009

Посмотрите Request.ServerVariables, в частности, переменную SERVER_PROTOCOL.

http://www.aspcode.net/List-of-RequestServerVariables.aspx

...