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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top