我有网络服务页面(webservice.asmx
)正在使用javascript通话,我想要
除了来自aspx或
的本地页面的请求之外,限制对此Web服务的公共请求
来自javscript。 Web服务在执行之前检查表单身份验证但是
服务列表是可查看的,参数可在.asmx
页面中访问。用户可以
键入www.site.com/webservice1.asmx
以访问我的Web服务。所以我需要限制这个
选项。我们如何保护asmx
文件免受公共用户访问。?
答案 0 :(得分:1)
我认为您希望限制对Web服务的HTTP GET访问,修改Web.config的webServices
部分:
<webServices>
<protocols>
<add name="HttpPost" />
<remove name="HttpGet" />
<remove name="Documentation"/>
</protocols>
</webServices>
修改 - 禁用HTTP GET的其他方法
在您的网络方法上方添加此属性:
[ScriptMethod(UseHttpGet = false)]
在每个网络方法中添加此检查:
if (HttpContext.Current.Request.HttpMethod == HttpMethod.POST)
// Do your work