gpt4 book ai didi

c# - C# 中的帧重定向

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:19 25 4
gpt4 key购买 nike

我想从我的 IIS 7 托管模块在 C# 中执行帧重定向。
当我调用 context.Response.Redirect(@"http://www.myRedirect.org"); 时,会显示正确的页面,但地址也会显示在浏览器中。而这正是我不想要的。
所以我想要这样的东西:

private void OnBeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
HttpContext context = app.Context;

// make a frame redirect if a specified page is called
if (context.Request.ServerVariable["HTTP_REFERER"].Equals(@"http://www.myPage.org/1.html"))
{
// perform the frame redirect here, but how?
// so something like
context.Response.Redirect(@"http://www.myRedirect.org");
// but as I said that doesn't redirect as I want it to be
}
}

对此有什么想法吗?
编辑:我试过这个例子,所以我有:

private void OnBeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
HttpContext context = app.Context;

// make a frame redirect if a specified page is called
if (context.Request.ServerVariable["HTTP_REFERER"].Equals(@"http://www.myPage.org/1.html"))
{
// perform the frame redirect here, but how?
context.Response.Write(@"<html>");
context.Response.Write(@"<head>");
context.Response.Write(@"</head>");
context.Response.Write(@"<frameset rows=""100%,*"" framespacing=""0"" frameborder=""NO"" border=""0"">");
context.Response.Write(@"<frame src=""http://www.myRedirect.org"" scrolling=""auto"">");
context.Response.Write(@"</frameset>");
context.Response.Write(@"<noframes>");
context.Response.Write(@"<body>Some text...");
context.Response.Write(@"</body>");
context.Response.Write(@"</noframes>");
context.Response.Write(@"</html>");
}
}

但这也不能正确重定向。我的浏览器中仍然显示重定向地址。那么还有其他想法吗?

编辑:我显然犯了一个错误。上面的代码可以工作并且可以满足我的要求。它首先不起作用,因为我的重定向 url 做了一些意想不到的事情。

最佳答案

执行 frame redirect您需要发回包含带有单个框架的框架集的 HTML 代码,其源设置为 http://www.myRedirect.org .就服务器和浏览器而言,没有发生重定向 - 它只是收到了一些 HTML 代码。

如您所见,执行 Response.Redirect 将导致浏览器向新页面发出全新的请求,并在标题栏中向用户显示新地址。它通常用于当页面实际更改其地址时,但所有者仍然希望它也可以从原始 URL 访问。

编辑:HTML 框架重定向示例:http://en.wikipedia.org/wiki/URL_redirection#Frame_redirects

关于c# - C# 中的帧重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com