我正在维护一个客户经典 ASP 网站,并且在特定位置发现了一些 ASP.NET 代码。
我需要有人帮助我理解每一行的含义,因为我必须用经典 ASP 函数替换此 ASP.NET 代码。
根据我的理解,代码执行的操作如下:
- 获取Request.QueryString
url
,并将其放入名为str
的变量 - 重定向(发送 HTTP 302)到
str
的Url-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.config
或 global.asax.cs
,或者如果这是最近在这些文件之一中查找的 startup.cs
应该是此处理程序的注册,查找对 GenericHandler1
的任何引用。当您找到该代码时,您将找到您可能需要考虑实现的其余实现细节。
这是一个奇怪的问题,“在经典 ASP 中复制 ASP.Net 网站”
。我确信您有自己的业务原因,但是您是否考虑升级到 OWIN 实现,也许使用 ASP.Net Core ?如果您的要求是部署到非 IIS 主机,这通常是更简单的选择。
关于c# - 需要了解简短的 ASP.NET 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59531415/