我有 web 服务页面 ( webservice.asmx
) 正在使用 javascript 调用,并且我想
限制对这个 web 服务的公共请求,而不是来自本地页面(aspx 或
javscript)的请求。Web 服务在执行之前会检查表单身份验证,但可以查看服务列表并且可以在page
中访问参数。.asmx
用户可以
键入www.site.com/webservice1.asmx
访问我的网络服务。所以我需要限制该
选项。我们如何保护asmx
文件不被公共用户访问。?
问问题
1806 次
1 回答
1
我认为您想限制对 Web 服务的 HTTP GET 访问,请修改webServices
Web.config 部分:
<webServices>
<protocols>
<add name="HttpPost" />
<remove name="HttpGet" />
<remove name="Documentation"/>
</protocols>
</webServices>
编辑- 其他禁用 HTTP GET 的方法
在您的 Web 方法上方添加此属性:
[ScriptMethod(UseHttpGet = false)]
在每个 Web 方法中添加此检查:
if (HttpContext.Current.Request.HttpMethod == HttpMethod.POST) // Do your work
于 2012-05-15T06:57:32.830 回答