验证每个WebMethod中的某些参数

时间:2011-03-21 07:11:19

标签: c# .net web-services

我正在开发一个基于.NET4的简单Web服务

我的大多数WebMethod都是这样的

    [WebMethod]
    public List<Customer> GetCustomers(Country country, Guid sessionId)
    {
        if (!Validate(sessionId)
            return null;
        ...
    }

    [WebMethod]
    public List<Order> GetOrders(Customer customer, Guid sessionId)
    {
        if (!Validate(sessionId)
            return null;
        ...
    }

正如您所看到的,Web方法需要在执行实际工作之前验证给定的会话ID。由于我将有几个这样的WebMethods,我害怕错过几个WebMethods中的Validate()调用。

在执行相关的WebMethods之前,我是否有机会拦截并验证给定的sessionId ?如果验证失败,则返回Null(或其他) - 因此甚至不调用相关的WebMethod?

感谢您的任何想法(非常感谢代码片段!) 英格玛

1 个答案:

答案 0 :(得分:0)

ASMX Example使用SoapExtensionSoapExtensionReflectorSoapExtensionImporter

在WCF中执行相同操作因此提供了一个示例:)

WCF Sample使用IParameterInspector