C# ihttphandler完全按原样写出文件

C# ihttphandler完全按原样写出文件,c#,asp.net,ihttphandler,C#,Asp.net,Ihttphandler,我正在编写一个从IHttpHandler继承的类,用于脚本和css的组合。我只想在querystring定义了一个特殊参数时合并。如果没有定义这个参数,那么我想编写文件的内容,就好像没有涉及处理程序一样。什么是最好的方式来传递文件的安全 EIDT: 我遇到的一个问题是,我在页面上有一个脚本标记,它引用了虚拟目录中的脚本,但我所在的页面位于应用程序的子目录中 从中引用控制脚本的页面位于webserver/Admin/Default.aspx。当我访问实现IHttpHandler的类中的请求对象时,

我正在编写一个从IHttpHandler继承的类,用于脚本和css的组合。我只想在querystring定义了一个特殊参数时合并。如果没有定义这个参数,那么我想编写文件的内容,就好像没有涉及处理程序一样。什么是最好的方式来传递文件的安全

EIDT:


我遇到的一个问题是,我在页面上有一个脚本标记,它引用了虚拟目录中的脚本,但我所在的页面位于应用程序的子目录中


从中引用控制脚本的页面位于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的类中的请求对象时,所有文件路径属性如下所示:。我如何解决这个问题?