1

我有 web 服务页面 ( webservice.asmx) 正在使用 javascript 调用,并且我想
限制对这个 web 服务的公共请求,而不是来自本地页面(aspx 或
javscript)的请求。Web 服务在执行之前会检查表单身份验证,但可以查看服务列表并且可以在page
中访问参数。.asmx用户可以
键入www.site.com/webservice1.asmx访问我的网络服务。所以我需要限制该
选项。我们如何保护asmx文件不被公共用户访问。?

4

1 回答 1

1

我认为您想限制对 Web 服务的 HTTP GET 访问,请修改webServicesWeb.config 部分:

<webServices>
     <protocols>
       <add name="HttpPost" />
       <remove name="HttpGet" />
       <remove name="Documentation"/>
     </protocols>
</webServices>     

编辑- 其他禁用 HTTP GET 的方法

  1. 在您的 Web 方法上方添加此属性:

    [ScriptMethod(UseHttpGet = false)]
    
  2. 在每个 Web 方法中添加此检查:

    if (HttpContext.Current.Request.HttpMethod == HttpMethod.POST)
        // Do your work
    
于 2012-05-15T06:57:32.830 回答