如何检测ASP.NET请求使用的Web服务协议?

时间:2009-04-23 17:18:12

标签: web-services security asmx soap-extension

我有一个ASP.NET(1.1)Web服务,它使用SoapExtension.ProcessMessage(SoapMessage)覆盖来验证客户端,如下所述:

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

但是,如果web.config没有设置为HttpSoap是唯一允许的协议,那么ProcessMessage永远不会被其他协议上的请求调用,因此会绕过安全性。

无论如何以编程方式确保使用SOAP(而不是依赖于web.config是正确的)?

感谢。

3 个答案:

答案 0 :(得分:2)

如果它对任何人有用,我最终检查:

Request.ServerVariables["HTTP_SOAPAction"] != null

这不太理想但似乎可以解决问题。

答案 1 :(得分:0)

查看Request.ServerVariables,特别是SERVER_PROTOCOL变量。

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

答案 2 :(得分:0)

您可以尝试在启动时读取并解析web.config,看看它是否按照您希望的方式进行设置。