我写了一个网络服务,因为我希望我的javascript使用ajax在整个网站中访问其中的方法。我是新手。但是我刚刚意识到asmx可以通过浏览器访问,它显示了测试页面和来自方法的数据的xml输出。有没有办法为Web服务禁用此UI?我只希望它在调用时将数据返回到javascript方法。
答案 0 :(得分:1)
我不确定您正在使用的.NET Web服务版本,但您可以禁用Web服务帮助页面,该页面通常仅在本地可用。它也可能禁用WSDL生成。请参阅https://msdn.microsoft.com/en-us/library/2tyf2t8t(v=vs.100).aspx或https://www.thecodingforums.com/threads/how-to-disable-modify-the-default-test-pages-for-asmx-web-services.786001/
如果您还希望阻止其他人访问您的网络服务,您也必须查看身份验证技术。
答案 1 :(得分:1)
您的javascript以与浏览器相同的方式访问您的网络服务。从浏览器关闭您的服务,关闭它以获取您的javascript。
基本上,你说你在你的房子里开了一扇门,因为你想要进去(完全有道理!)但是现在你很担心,因为每个人都可以看到门(你可能早就想到了htat!并使用它(这是你真正的问题!) 所以你会怎么做?你把门锁上了。
这不会使门看不见,但却让错误的人出局。
您希望对您的Web服务执行相同的操作:实施身份验证/授权。
旁注:这是2017年。我甚至不知道人们仍在使用.asmx。看看WCF,它或多或少在2010年左右替换了旧的asmx Web服务......
答案 2 :(得分:0)
据我所知。您的asmx不应显示任何敏感数据。如果确实存在设计问题。
您可能会看到的XML数据是WSDL。这不是一件坏事,实际上它是允许消费者了解WebService结构的原因。有关此问题的详细信息,请参阅this apge