- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 ASP.NET WebAPI 项目中记录整个传入请求和传出响应。虽然我同意 DelegatingHandler
,但我的雇主坚持使用 HttpModule
。您如何向她解释为什么我们应该使用 DelegatingHandler
而不是 HttpModule
?还是我错了?
最佳答案
我会使用 DelegatingHandler . DelegatingHandler是 Web API 管道的一部分,可以在任何主机下运行。 HttpModule 不是 Web Api 的一部分,需要 IIS。
虽然与您的问题没有直接关系,但我将引用以下内容 MSDN突出显示两者(包括差异)的文章:
HTTP Module This is an option for Web APIs running on IIS. HTTPmodules allow security code to execute early as part of the IISpipeline. The principal established from an HTTP module is availableto all components, including the IIS components running later in thepipeline. For example, when the principal is established by an HTTPmodule in response to the AuthenticateRequest event, the username ofthe principal gets logged correctly in the cs-username field in IISlogs. The biggest drawback with HTTP modules is the lack ofgranularity. HTTP modules run for all requests coming into theapplication. For a Web application with different capabilities such asHTML markup generation, Web APIs and so on, having an HTTP moduleenforcing authentication in one way is generally not a flexible-enoughapproach. Another disadvantage with using an HTTP module is thedependency on the host—IIS, in this case.
Message Handler An extensibility option provided by ASP.NET Web API,the greatest benefit in using a message handler for security is it’s aconcept of the ASP.NET Web API framework and, hence, doesn’t depend onthe underlying host or server. Also, a message handler runs only forWeb API requests. The downside of using a message handler is the lackof finer control. A message handler can be configured to run as aglobal handler for all requests or for a specific route. For a givenroute, you can have multiple controllers. All these controllers andthe action methods they contain must share the same authenticationenforced by the message handler configured for that route. In otherwords, the lowest granularity for authentication implemented by amessage handler is at the route level.
关于c# - HttpModule 与 DelegatingHandler - 优点/缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39373219/
谁能告诉我这个 HttpModule 的目的?它出现在我的 HttpModule Collection 列表中,但我不知道它的用途。 System.ServiceModel.Activation.Ht
有没有一种好方法可以排除某些页面使用 HTTP 模块? 我有一个使用自定义 HTTP 模块来验证 session 的应用程序。 HTTPModule 在 web config 中是这样设置的:
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: HTTPModule Event Execution Order? 我正在调查 Page 对象最初是在 Ht
我在服务器上安装了一个 HTTP 模块。奇怪的是它可以工作,但每隔一段时间它就不会被执行。我有日志记录,在它不起作用的时候,它没有到达记录的代码。我在 IIS 日志或事件查看器中也没有看到任何内容。
我正在尝试创建一个虚拟文件。例如,我有一个组件可以从具有给定 ID 的数据库中获取 CMS 页面。现在我有一个类似 /hello/world/ 的 url,我想将页面 /hello/world/ 解析
当调用 web 服务时,我需要在调用某些操作时更改响应文本。 因此我创建了 HttpModule 来捕获响应并更改它。 代码下方: public class BeginEnd : IHttpModul
我知道这个已经被问过了here但是答案(改为使用处理程序)并不能解决问题,因为我使用的是未实现 IHttpHandler 的第三方组件。 那么,再一次,有什么方法可以根据特定请求加载/卸载 HttpM
如何设置它们? 如果我在 HttpModule 中有以下代码。 public static event EventHandler OnPostProcessing; 并在使用 EventHandler
我已经实现了一个 HttpModule,它拦截每个请求的响应流,并在每个文本/html 类型的响应上运行六到十几个 Regex.Replace()。我担心我在这里遭受了多少性能损失。有什么好方法可以查
我有一个 HttpModule,我将几个不同的在线资源拼凑成一个(大部分)既适用于传统 ASP.NET 应用程序,也适用于 ASP.NET MVC 应用程序的东西。其中最大的一部分来自 CodePle
我试图找到一种以编程方式检查是否加载了特定 HttpModule 的方法(因为我正在编写的组件需要模块正常工作)。我正在努力: bool ismodulepresent = false; foreac
通过网络搜索,我收到很多关于 HTTPModule 路由默认是单线程还是多线程的相互冲突的帖子。 我正在尝试在本地、UAT 和部署环境中调试快速不同的性能,并且想知道 HTTPModule 是否存在我
我是否必须锁定对实例成员的访问? 示例: public class HttpModule : IHttpModule { //... Dictionary foo; void
我正在查看许多页面关于 asp.net 的性能建议。具体来说,删除未使用的 httpmodules 部分: 这里列出
从 Asp.Net 5 开始,我们现在有了“中间件”概念来更改请求和响应或与请求和响应交互。所有这些都是在使用 HttpModule 之前完成的。 这是我的问题。 到底什么是 ASP.NET 中间件?
有人知道某个站点或页面,或者知道 HTTPModule 事件执行的 HTTPApplication 类的事件的执行顺序吗? 我找到了MSDN Documentation对于所有事件,但它没有显示流程步
我正在编写一个应用程序,第三方供应商可以在其中编写插件 DLL 并将它们放入 Web 应用程序的 bin 目录中。我希望这些插件能够在必要时注册自己的 HttpModule。 无论如何,我是否可以在运
我们突然遇到 CPU 峰值。检查我们的 Sitecore 日志后,我注意到有很多日志条目带有“11:49:26 INFO HttpModule is beinginitialized”。据了解,这应该
我创建了一个简单的 HttpModule 来记录我现有网络服务的使用情况。有一个包含单个类的 dll public class TrackingModule : System.Web.IHttpMod
我正在尝试使用 HttpModule 来拦截对不包含任何代码文件(图像、音乐等)的特定目录的请求。我拥有的模块可以工作,除了它适用于所有文件夹而不仅仅是我想要它应用的文件夹。我试图在我的 web.co
我是一名优秀的程序员,十分优秀!