Cadre Redirect en C #
-
21-09-2019 - |
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.
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