Question

Je voudrais exécuter un cadre redirect en C # de mon module géré pour IIS 7.
Quand j'appelle la page context.Response.Redirect(@"http://www.myRedirect.org");the correcte est affichée, mais aussi l'adresse est affichée dans le navigateur. Et c'est exactement ce que je ne veux pas.
Je veux quelque chose comme:

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

Toutes les idées à ce sujet?
EDIT: J'ai essayé l'exemple, donc je:

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

Mais cela ne aussi redirigent pas correctement. J'ai encore l'adresse de redirection indiqué dans mon navigateur. Ainsi, toute autre idée?
EDIT: J'ai évidemment fait une erreur. Le code ci-dessus fonctionne et fait ce que je veux. Elle a d'abord ne fonctionne pas parce que mon url redirect faisait quelque chose d'inattendu.

Était-ce utile?

La solution

Pour effectuer une de href="http://en.wikipedia.org/wiki/URL_redirection#Frame_redirects" vous devez renvoyer le code HTML contenant un avec un jeu de cadres cadre unique, avec son ensemble source http://www.myRedirect.org . En ce qui concerne le serveur et le navigateur est concerné ne redirect est arrivé -. Il vient de recevoir un code HTML

Réalisation d'une Response.Redirect sera, comme vous l'avez observé, que le navigateur pour faire une nouvelle nouvelle demande à la nouvelle page, montrant à l'utilisateur la nouvelle adresse dans la barre de titre. Il est généralement utilisé quand une page change réellement son adresse, mais les propriétaires veulent encore accessible depuis l'URL d'origine ainsi.

EDIT : cadre redirect HTML exemple: http: // fr .wikipedia.org / wiki / URL_redirection # Frame_redirects

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top