如何判断传入请求是否是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调用只是一个常规的GET或POST HTTP请求,我不认为你可以做任何事情来确定这是否是一个WebMethod调用,除了检查请求Url并确定它是否匹配你的WebMethods的Url之一。
换句话说,假设你的web服务被称为default.asmx
,并且有一个方法DoSomething
,你可以检查请求,看看它是否匹配
default.asmx/DoSomething
,然后记录它。我想这是安全的假设,因为你的web方法将暴露在default.asmx
下,你可以在请求的URL中查找该字符串。
你可以创建一个路径集合并检查请求URL的匹配路径,或者如果你所有的web方法都在一组类下,你可以检查HttpContext.Current.CurrentHandler
的类型,并将其与你的web方法所在的已知类型集合进行比较。