
[英]How to post data from a webform page to an HTTPHandler.ashx file?
[英]Hooking in an HttpHandler WITHOUT needing an ASHX file
我已经在 SO 和其他论坛上查看了这个问题的答案,但还没有看到一个令人满意地解释我如何解决这个问题的人,所以请多多包涵。
我正在研究几个老式的 Asp.Net/C# 网站(4.6),并且需要验证码图像......我已经有一个可以重复使用的 HttpHandler class,它利用了另一个实际生成图像的 class本身。 但我想将处理程序代码留在它自己的程序集中,而不必为我必须发布的每个网站将其代码复制并粘贴到 ASHX 文件中。 是否有一种无需 ASHX 文件即可调用处理程序(实现 IHttpHandler 接口)的好方法?
到目前为止,这就是我试图做的事情。
web.config:
<system.webServer>
<handlers>
<add name="Captcha" path="*Captcha.jpg" type="MyNamespace.CaptchaImageHandler, CaptchaImageHandler" verb="GET" />
</handlers>
...
</system.webServer>
处理程序:
namespace MyNamespace
{
public class CaptchaImageHandler : IHttpHandler
{
public bool IsReusable
{
get
{
return true;
}
}
public void ProcessRequest(HttpContext context)
{
...
}
}
}
...在我的 web 页面中,我有一个名为 CaptchaImage 的 html 图像控件,其中我以这种方式在代码隐藏中更新 Src:
CaptchaImage.Src = "~/Images/Captcha.jpg?w=160&h=64&(additional arguments for colors, etc.)"
我已经尝试了路径的波浪号方法,并指出了图像文件夹的完整路径(这应该不重要,对吧?那里没有“真实”图像),但似乎两种方法都不起作用。 使用 URL 直接浏览图像(处理程序)会给我一个 404。
任何帮助将不胜感激。 非常感谢大家,并保持祝福!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.