Frage

Ich möchte einen Rahmen Umleitung in C # von meinem verwalteten Modul auszuführen, für die 7 IIS.
Als ich context.Response.Redirect(@"http://www.myRedirect.org");the richtige Seite aufrufen wird gezeigt, sondern auch die Adresse im Browser angezeigt. Und das ist genau das, was ich nicht will.
Deshalb möchte ich so etwas wie:

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
    }
}

Irgendwelche Ideen dazu?
EDIT: Ich habe versucht, das Beispiel, so habe ich:

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>");
    }
}

Aber das ist auch nicht richtig umgeleitet werden. Ich habe noch die Umleitungsadresse in meinem Browser angezeigt. So jede andere Idee?
EDIT: Ich habe offensichtlich einen Fehler gemacht. Der obige Code funktioniert und das tut, was ich will. Es hat zunächst nicht arbeiten, weil meine Redirect-URL unerwartetes tun war etwas.

War es hilfreich?

Lösung

So führen Sie einen Frame Redirect Sie den HTML-Code enthält ein zurück senden müssen frameset mit einem einzigen Frame, mit seinem Source auf http://www.myRedirect.org . Was den Server und Browser betroffen ist keine Umleitung geschehen -. Es ist nur einige HTML-Code empfangen

Ausführen einer Response.Redirect wird, wie Sie beobachtet haben, der Browser eine frische neue Anforderung an die neue Seite zu machen, um dem Benutzer die neue Adresse in der Titelleiste zeigt. Es ist in der Regel verwendet, um, wenn eine Seite tatsächlich ändert seine Adresse, aber die Besitzer wollen es immer noch von der ursprünglichen URL Unerreichbar auch.

Bearbeiten : HTML-Frame-Weiterleitung Beispiel: http: // en .wikipedia.org / wiki / URL_redirection # Frame_redirects

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top