【问题标题】:How to restrict webservice access to public user in asp.net如何在asp.net中限制对公共用户的Web服务访问
【发布时间】:2012-05-22 14:50:35
【问题描述】:

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

【问题讨论】:

    标签: asp.net asmx


    【解决方案1】:

    我认为您想限制对 Web 服务的 HTTP GET 访问,修改 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
      

    【讨论】:

    • 它不起作用..我在应用程序中使用表单身份验证。是否对服务进行任何安全检查以限制公共用户。
    • 当我使用 时它正在工作,但我认为这不是正确的方法,是否可能在 web 服务中添加安全检查以便限制用户?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多