2012-05-15 101 views
1

我有web服务页面(webservice.asmx)被消耗javascript调用我想
限制公众申请此WebService比从本地的网页请求等是ASPX或
来自javscript的 。 Web服务在执行前检查表单身份验证,但
服务列表可查看,并且参数在.asmx页面中可访问。用户可以通过
类型www.site.com/webservice1.asmx来访问我的web服务。所以我需要限制
选项。我们如何保护asmx文件免受公共用户访问。如何限制Web服务访问公共用户在asp.net

回答

1

我想你想限制HTTP GET到您的Web服务访问,修改Web.config中的webServices部分:

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

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

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

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

    if (HttpContext.Current.Request.HttpMethod == HttpMethod.POST) 
        // Do your work 
    
+0

它不工作..我M在应用程序中使用窗体身份验证。是否有任何安全检查服务限制公众用户。 – user1394285

+0

它工作时,我使用 <删除名称=“文档” /> ,但我认为这是不正确的方式,是否有可能增加安全web服务检查,这样可以限制用户? – user1394285

+0

请参阅答案中的编辑。 – Coder