asp.net – 控制哪些WebMethods在WebService中外部公开

我想不出一个体面的头衔,所以让我先为此道歉.

我有一个为我的应用程序编写的WebService(称之为A),因此我可以利用ASP.NET 3.5 AJAX功能.我使用生成的JavaScript代理来进行AJAX调用.

作为一个副作用,WebService A暴露给任何人作为对另一个项目的引用添加,这很好,除了我不希望某些WebMethods可用于外部应用程序(在同一域,BTW).

所以我有两个问题:

>有没有办法控制WebServiceA中WebMethods的曝光?

如果没有,我想我只会添加一个单独的WebService(B),它从WebService A公开我需要的WebMethods.但是,

>如何阻止其他应用程序引用WebService A,同时仍允许其源自的应用程序访问它?

如果那不可能,我真的不担心.这些应用程序都是仅限Intranet的,我只是不希望Web服务被滥用.

此外,这里也有一个类似的问题没有任何好的答案.提问者描述了我所处的几乎相同的情况:ASP.NET WebService deny remote access

最佳答案 要创建公共/私人Web服务,您可以将.asmx放入另一个文件夹,创建一个新的web.config文件,并在< authorization>中定义您的授权用户.部分.

本文档详细描述了此配置:Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication.

点赞