在C#中有条件地隐藏asmx Web方法

时间:2011-04-04 15:53:07

标签: c# web-services conditional asmx webmethod

如何有条件地隐藏网络方法?如果web.config中的标志设置为false,我不想公开Web方法。如果是,那么我将公开web方法。

含义:只有当标志为真时,该方法才应对客户端可见,否则它不应该对客户端可用。

这在C#中是否可行?

2 个答案:

答案 0 :(得分:2)

您可以检查方法中的标志,如果未设置则抛出异常。

答案 1 :(得分:1)

你真的不能这样做。

您的客户“看到”Web方法,因为它们列在WSDL中。 WSDL生成是相当静态的 - 它基于方法的[WebMethod]属性。实际上没有能力从生成的WSDL中删除项目。

如果你可以切换到WCF,你会发现这么多,更容易。与此同时,您只需使用授权 - 阻止某些客户端调用某些方法。