【发布时间】:2015-04-08 23:07:11
【问题描述】:
我想知道哪个页面和哪个 URL 调用了我的 Handler .ashx,这可能吗?
我需要这个,因为我有一个处理程序,它从数据库调用和转换图像,但是我的一些图像 URL 没有传递正确的查询参数(它们在数据库中不存在),我需要什么是 URL谁打电话来看看那个参数的图像是什么。
【问题讨论】:
-
只在查询字符串中包含信息。
我想知道哪个页面和哪个 URL 调用了我的 Handler .ashx,这可能吗?
我需要这个,因为我有一个处理程序,它从数据库调用和转换图像,但是我的一些图像 URL 没有传递正确的查询参数(它们在数据库中不存在),我需要什么是 URL谁打电话来看看那个参数的图像是什么。
【问题讨论】:
为什么不直接使用 context.Request.UrlReferrer?
【讨论】:
您的直接问题的快速解决方案是调用(在 C# 中)
在您的 public void ProcessRequest(HttpContext context){} 方法中,添加以下 3 行。
IServiceProvider provider = (IServiceProvider)context;
HttpWorkerRequest worker = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
String referer = worker.GetKnownRequestHeader(HttpWorkerRequest.HeaderReferer);
这将为您提供调用您的处理程序的页面的 URL。
不过,为了更进一步,理想情况下,您应该实施错误处理来处理任何丢失的图像。
【讨论】: