c# - 需要了解简短的 ASP.NET 源代码

标签 c# asp.net .net iis

我正在维护一个客户经典 ASP 网站,并且在特定位置发现了一些 ASP.NET 代码。

我需要有人帮助我理解每一行的含义,因为我必须用经典 ASP 函数替换此 ASP.NET 代码。

根据我的理解,代码执行的操作如下:

  1. 获取Request.QueryString url,并将其放入名为str的变量
  2. 重定向(发送 HTTP 302)到 strUrl-Decoded

我确信不会遗漏任何其他内容。我的理解完整吗?

谢谢所有 .NET 人员:)

<%@ WebHandler Language="C#" Class="GenericHandler1" %>

using System;
using System.Web;

public class GenericHandler1 : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        string str = context.Request.QueryString.Get("url");
       // context.Response.Redirect( context.Server.UrlDecode(str));
        HttpContext.Current.Response.Redirect(context.Server.UrlDecode(str), false);
    }

    public bool IsReusable {
        get 
        {
            return false;
        }
    }

}

最佳答案

你的理解是正确的。这是一个简单的 HTTP 处理程序,用于解码 URL 并将请求重定向到解码后的位置。

这在许多现代网站中并不是严格要求的,但如果您的网站从第一原则出发或在您认为原始参数可能被双重编码的情况下做了很多工作,那么它是一种可以简化解释 url 参数的技巧。

要完全复制实现,您可能根本不需要复制此代码,而不是全局意义上的复制。相反,请查看 web.configglobal.asax.cs,或者如果这是最近在这些文件之一中查找的 startup.cs应该是此处理程序的注册,查找对 GenericHandler1 的任何引用。当您找到该代码时,您将找到您可能需要考虑实现的其余实现细节。


这是一个奇怪的问题,“在经典 ASP 中复制 ASP.Net 网站”。我确信您有自己的业务原因,但是您是否考虑升级到 OWIN 实现,也许使用 ASP.Net Core ?如果您的要求是部署到非 IIS 主机,这通常是更简单的选择。

关于c# - 需要了解简短的 ASP.NET 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59531415/

相关文章:

c# - 程序集未找到 NEWBIE 问题

c# - 依赖注入(inject)。为 ASP.NET vNext 做准备

javascript - 如何仅在 C# asp.net 中将字符串转换为日期

c# - 在 Linq to Sql 中返回多列?

.net - 通过 .NET Framework 类以编程方式使用 XSD.exe 工具功能(从类生成架构)?

c# - 使用 C# 向 Paradox 表插入查询的问题

c# - WPF MVVM TreeView 组

c# - 编译器错误 : "error CS0307: The variable ' int' cannot be used with type arguments"

asp.net - Visual Studio 2015 下载在应用 Microsoft ASP.net 时遇到困难

.net - 值得学习COM吗?