2009-06-12 8 views

Répondre

2

Parfois, le référent n'est pas possible. Imaginez un formulaire de connexion qui effectue une validation, vous entrez le mauvais mot de passe, il revient avec un message d'erreur rouge, puis le référent est faux. Bien sûr, dans ce cas, la solution de chaîne de requête fonctionnerait.

Mais alternativement, vous pouvez

  • utiliser un champ de formulaire caché
  • magasin la dernière page dans un objet de session sur le serveur
  • sérialiser l'URL de retour à JSON et utiliser JavaScript pour faire la redirection

(Je ne dis pas que ces options sont bonnes ou mauvaises, ils sont tout ce que je pouvais penser à ce moment)

2

Il suffit d'utiliser l'URL Referer d'en-tête [sic].

var requestFrom = Request.UrlReferrer 

Vous trouverez la documentation à l'adresse: http://msdn.microsoft.com/en-us/library/system.web.httprequest.urlreferrer.aspx

La seule fois où cela ne fonctionnerait pas est lorsque la page est demandée directement, mais dans ce cas, vous n'aurait pas lieu de se rediriger vers de toute façon .

L'autre option consiste à effectuer une requête asynchrone à l'aide d'AJAX, afin que votre action Supprimer ne fasse que ce qu'elle décrit et ne soit pas responsable de quelque chose qui ne soit pas destiné à la suppression.

+0

J'espérais rester loin de urlreferrer car il n'est pas sûr et a besoin de désinfecter :-( –

+1

UrlReferrer arrive en tant que System.Uri, donc il a déjà une sorte de protection intégrée, en tant qu'échapper et quoi . Mais fondamentalement, ils vont être redirigés vers la page dans laquelle ils sont venus. Aussi, je ne sais pas comment vous trouveriez quelque chose de plus sûr si vous prenez l'entrée de la demande POST. –

Questions connexes