【问题标题】:How to hide ASP.NET webservice methods?如何隐藏 ASP.NET Web 服务方法?
【发布时间】:2023-03-25 10:43:01
【问题描述】:

我们在单个 .asmx URL 上运行这些 SOAP 方法。但是我们想对给定的用户隐藏一些方法。我们有 2 个用户,每个用户都不应该看到对方使用的方法。

我认为我们需要将不同 URL 中的方法分开,但这可能还不够。我们应该使用单独的项目吗?是否有任何 ASP.NET 或 IIS 功能可以让我们轻松做到这一点?

【问题讨论】:

  • “隐藏”是什么意思?使服务不易被发现?这听起来更像是您想要某种形式的访问控制。
  • 为什么不在标题中使用安全性?
  • @RoyiNamir 是如何工作的?它需要凭据吗?

标签: asp.net web-services iis-7 asmx


【解决方案1】:

很遗憾,您无法隐藏 Web 方法。标有 WebServiceAttribute 属性的 Webservice 公共方法将被暴露。

【讨论】:

    【解决方案2】:

    要隐藏 webmethods,也许有一个解决方法可以帮助你:

    构建一个 ashx 文件以在服务器端调用 webservice,并访问它 ashx 文件通过使用从客户端检索结果 XMLHttpRequest。 ashx 页面是访问 Web 服务的代理页面 并从 web 方法中获取结果。客户端可以使用 XMLHttpRequest 从 ashx 页面获取结果。使用这种方法,客户端 不知道什么是web方法,只知道ashx url

    Source: ASP.NET Forum - Vince Xu

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 1970-01-01
      • 2020-01-28
      相关资源
      最近更新 更多