gpt4 book ai didi

c# - IHttpHandler 与 IHttpModule

转载 作者:IT王子 更新时间:2023-10-29 03:39:14 27 4
gpt4 key购买 nike

我的问题很简单(尽管答案很可能不是):我试图决定如何在 C#/ASP.NET 中实现服务器端上传处理程序。

我已经使用了 HttpModules(IHttpModule 接口(interface))和 HttpHandlers(IHttpHandler 接口(interface)),我突然想到我可以使用任何一种机制来实现它。我也突然想到我不明白两者之间的区别。

所以我的问题是:在什么情况下我会选择使用 IHttpHandler 而不是 IHttpModule(反之亦然)?

是否在流水线中执行得更高?在某些情况下是否更容易配置?中等安全性不能很好地工作吗?

最佳答案

ASP.NET HTTP 处理程序 是响应对 ASP.NET Web 应用程序发出的请求而运行的进程(通常称为“端点”)。最常见的处理程序是处理 .aspx 文件的 ASP.NET 页面处理程序。当用户请求 .aspx 文件时,页面通过页面处理程序处理请求。您可以创建自己的 HTTP 处理程序,将自定义输出呈现给浏览器。

自定义 HTTP 处理程序的典型用途包括:

  • RSS 提要 要为网站创建 RSS 提要,您可以创建一个处理程序来发出 RSS 格式的 XML。然后,您可以将文件扩展名(例如 .rss)绑定(bind)到自定义处理程序。当用户向您的站点发送以 .rss 结尾的请求时,ASP.NET 会调用您的处理程序来处理该请求。
  • 图像服务器如果您希望 Web 应用程序提供各种尺寸的图像,您可以编写自定义处理程序来调整图像大小,然后将它们作为处理程序的响应发送给用户。

HTTP 模块 是一个程序集,它会在对您的应用程序发出的每个请求时被调用。 HTTP 模块作为 ASP.NET 请求管道的一部分被调用,并且可以在整个请求过程中访问生命周期事件。 HTTP 模块可让您检查传入和传出请求并根据请求采取行动。

HTTP 模块的典型用途包括:

  • 安全性 因为您可以检查传入的请求,所以 HTTP 模块可以在请求的页面、XML Web 服务或处理程序被调用之前执行自定义身份验证或其他安全检查。在以集成模式运行的 Internet Information Services (IIS) 7.0 中,您可以将表单例份验证扩展到应用程序中的所有内容类型。
  • 统计和日志记录因为 HTTP 模块在每次请求时都会被调用,所以您可以在一个集中的模块中而不是在单独的页面中收集请求统计信息和日志信息。
  • 自定义页眉或页脚因为您可以修改传出响应,所以您可以将自定义页眉信息等内容插入到每个页面或 XML Web 服务响应中。

发件人:http://msdn.microsoft.com/en-us/library/bb398986.aspx

关于c# - IHttpHandler 与 IHttpModule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/769432/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com