我有一个ASP.NET(1.1)Web服务,它使用SoapExtension.ProcessMessage(SoapMessage)覆盖来验证客户端,如下所述:
http://www.codeguru.com/columns/experts/article.php/c5479
但是,如果web.config没有设置为HttpSoap是唯一允许的协议,那么ProcessMessage永远不会被其他协议上的请求调用,因此会绕过安全性。
无论如何以编程方式确保使用SOAP(而不是依赖于web.config是正确的)?
感谢。
答案 0 :(得分:2)
如果它对任何人有用,我最终检查:
Request.ServerVariables["HTTP_SOAPAction"] != null
这不太理想但似乎可以解决问题。
答案 1 :(得分:0)
查看Request.ServerVariables
,特别是SERVER_PROTOCOL
变量。
答案 2 :(得分:0)
您可以尝试在启动时读取并解析web.config,看看它是否按照您希望的方式进行设置。