Enmarcar redirección en C #
-
21-09-2019 - |
Pregunta
Me gustaría ejecutar una redirección marco en C # de mi módulo administrado por el IIS 7.
Cuando llamo
se muestra context.Response.Redirect(@"http://www.myRedirect.org");
the página correcta, sino también la dirección se muestra en el navegador. Y eso es exactamente lo que no quiero.
Así que quiero algo como:
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
}
}
¿Alguna idea sobre eso?
editar
Probé el ejemplo, por lo que tengo:
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>");
}
}
Pero eso también no redirige correctamente. Todavía tengo la dirección de redirección se muestra en mi navegador. Por lo que cualquier otra idea?
EDIT:
obviamente, he cometido un error. El código anterior funciona y lo que quiero. En primer lugar, no funcionó porque mi redirección url estaba haciendo algo inesperado.
Solución
Para realizar una redirección marco que necesita para devolver el código HTML que contiene una de marcos con un solo marco, con su conjunto de origen a http://www.myRedirect.org . Por lo que el servidor y el navegador se refiere sin redirección ha sucedido -. Que acaba de recibir un poco de código HTML
Realización de una Response.Redirect
muestren, en la que ha observado, que el navegador para hacer una nueva solicitud fresca a la nueva página, que muestra al usuario la nueva dirección en la barra de título. Se utiliza normalmente para cuando una página realmente cambia su dirección, pero los propietarios que todavía quiere accesible desde la dirección URL original también.
Editar : HTML marco de la muestra de redirección: http: // en .wikipedia.org / wiki / URL_redirection # Frame_redirects