如何判断传入请求是否是webmethod请求

本文关键字:请求 是否是 webmethod 何判断 判断 | 更新日期: 2023-09-27 18:18:06

当一个请求进来,我怎么能告诉(之前实际的webmethod被调用),如果一个请求是一个webmethod请求?

下面的内容:

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        if (IsWebMethod())
        {
            DoLogging();
        }
    }

我需要哪些测试来准确地确定IsWebMethod()何时应该为真?

原因:我们正在公开几个web服务(.asmx),我正在尝试实现一个DRY技术来捕获这些调用的信息。

如何判断传入请求是否是webmethod请求

因为WebMethod调用只是一个常规的GET或POST HTTP请求,我不认为你可以做任何事情来确定这是否是一个WebMethod调用,除了检查请求Url并确定它是否匹配你的WebMethods的Url之一。

换句话说,假设你的web服务被称为default.asmx,并且有一个方法DoSomething,你可以检查请求,看看它是否匹配

default.asmx/DoSomething 

,然后记录它。我想这是安全的假设,因为你的web方法将暴露在default.asmx下,你可以在请求的URL中查找该字符串。

你可以创建一个路径集合并检查请求URL的匹配路径,或者如果你所有的web方法都在一组类下,你可以检查HttpContext.Current.CurrentHandler的类型,并将其与你的web方法所在的已知类型集合进行比较。

相关文章: