C# ihttphandler完全按原样写出文件
我正在编写一个从IHttpHandler继承的类,用于脚本和css的组合。我只想在querystring定义了一个特殊参数时合并。如果没有定义这个参数,那么我想编写文件的内容,就好像没有涉及处理程序一样。什么是最好的方式来传递文件的安全 EIDT:C# ihttphandler完全按原样写出文件,c#,asp.net,ihttphandler,C#,Asp.net,Ihttphandler,我正在编写一个从IHttpHandler继承的类,用于脚本和css的组合。我只想在querystring定义了一个特殊参数时合并。如果没有定义这个参数,那么我想编写文件的内容,就好像没有涉及处理程序一样。什么是最好的方式来传递文件的安全 EIDT: 我遇到的一个问题是,我在页面上有一个脚本标记,它引用了虚拟目录中的脚本,但我所在的页面位于应用程序的子目录中 从中引用控制脚本的页面位于webserver/Admin/Default.aspx。当我访问实现IHttpHandler的类中的请求对象时,
我遇到的一个问题是,我在页面上有一个脚本标记,它引用了虚拟目录中的脚本,但我所在的页面位于应用程序的子目录中
从中引用控制脚本的页面位于webserver/Admin/Default.aspx。当我访问实现IHttpHandler的类中的请求对象时,所有文件路径属性如下:webserver/Admin/~/SharedScripts/control.js。我如何解决这个问题 您可以在“ProcessRequest(HttpContext上下文)”方法中检查查询字符串参数,如下所示:
context.Request.QueryString["paramertername"]
如果要按原样流式传输请求的文件,则可以执行以下操作:
string physicalFilePath = context.Request.PhysicalPath;
string fileContent = string.Empty;
// Determine whether file exists
if (File.Exists(physicalFilePath))
{
// Read content from file
using (StreamReader streamReader = File.OpenText(physicalFilePath))
{
fileContent = streamReader.ReadToEnd();
}
}
context.Response.Output.Write(convertedFile);
context.Response.Flush();
PS:您还可以查看下面的代码项目文章以获得更全面的示例:我遇到的一个问题是,我在页面上有一个脚本标记,它引用了虚拟目录中的脚本,但我所在的页面位于应用程序的子目录中。正在引用控制脚本的页面位于。当我访问实现IHttpHandler的类中的请求对象时,所有文件路径属性如下所示:。我如何解决这个问题?