HttpModule/HttpApplication 测试 url 是否为文件请求
在 HttpModule 中,我想检查 url 是否以文件结尾:
即。 www.example.com/images/images.css
以及文件扩展名是什么,即。 。
在 Begin_Request 事件处理程序中,使用嵌套在 HttpApplication 中的 Request 对象的 Url 属性,我当前正在使用 String 操作来剪切文件扩展名 有一个更好的方法吗?
Within a HttpModule I would like to check whether the url ends with a file:
ie. www.example.com/images/images.css
and what the file extension is ie. css or js
In the Begin_Request event handler, using the Url property of the Request object nested in the HttpApplication, I am currently cutting of the file extension using String operations. Is there a better way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
下面的代码应该会为您提供所请求文件的扩展名。
但与 .aspx 和 .ashx 等文件类型不同,您在示例中使用的 .js 和 .css 等文件类型默认情况下不会在 IIS 中向 ASP.Net dll 注册,因此当请求它们时 IIS 不会通过通过 ASP.Net 管道发送请求,因此不会运行 HttpModules 或 HttpHandlers。 如何配置此操作取决于您运行的 IIS 版本。
The code below should get you the extension for the requested file.
But unlike file types such as .aspx and .ashx file types such as .js and .css that you have used in your example are not by default registered with the ASP.Net dll within IIS so when they are requested IIS doesn't pass the request through the ASP.Net pipeline so no HttpModules or HttpHandlers will run. How you configure this to happen depends on what version of IIS you are running on.
请查看
HttpRequest.Url 的属性
。 它的类型为System.Uri
< /a>.Please look at the properties of
HttpRequest.Url
. It is of the typeSystem.Uri
.试试这个:
请注意,
Extension
始终以“.”开头。 例如“.css”或“.js”Try this:
Note that
Extension
will always have the leading '.'. e.g. '.css' or '.js'