IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Passage de paramètre en POST et redirection


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut Passage de paramètre en POST et redirection
    Hello,

    Je voudrais rediriger ma page web vers une autre en lui passant des paramètres via une requête HTTP POST. J'ai déjà essayé pas mal de chose dont :
    _ Utilisation d'un HttpWebRequest avec des Stream et ainsi utiliser la fonctions "Write" de ceux-ci : je n'ai pas de données renvoyées (trame analysée avec fiddler). Voici "mon" code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    HttpWebRequest request=null;
    Uri uri = new Uri(url);
    request = (HttpWebRequest) WebRequest.Create(uri);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = postData.Length;
    using(Stream writeStream = request.GetRequestStream())
    	{
    		UTF8Encoding encoding = new UTF8Encoding();
    		byte[] bytes = encoding.GetBytes(postData);
    		writeStream.Write(bytes, 0, bytes.Length);
    	}
    _ Utilisation d'un WebClient avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    WebClient wc = new WebClient();
    			string uri = url;
     
    			NameValueCollection nvc = new NameValueCollection();
    			nvc.Add("lastname", "Blum");
    			nvc.Add("firstname", "Rich");
    			byte[] response = wc.UploadValues(uri,"POST", nvc);
    			return Encoding.ASCII.GetString(response);
    Je n'arrive à rien avec ces deux méthodes. Je ne pense pas que ce soit quelque chose si compliqué à réaliser, je dois sans doute mal m'y prendre. Au départ je procédé par un simple passage par la méthode GET et je devais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpContext.Current.Response.Redirect(server + redirectUrl, true);
    J'aimerais juste faire la même chose mais en POST...
    Info : Je suis sur le Framework 1.1.

    Merci d'avance pour toute participation à mon problème.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    au pire, tu les mets dans des champs caché sur ta page et tu fais un post de celle-ci

    sinon, tu as essayé Server.Transfert http://dotnet.developpez.com/faq/asp...s#PreviousPage ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Merci pour la réponse.

    Je ne peux pas utiliser Server.Transfert car je ne maitrise pas la page destinataire.
    La première solution que tu exploses me plait et j'étais en train d'y réfléchir. Le problème est que je ne trouve pas le moyen de faire le post de mon formulaire...?

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Je ne voie pas vraiment comment exploiter ce qu'il y a dans ton lien.
    Ca pourrait m'être utile dans le cas où le formulaire devrait me renvoyer sur ma page mais là la page destinataire est sur un autre site web donc je ne peux utiliser le postback... A moins que j'aurais mal compris ?

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu as besoin d'afficher le contenu du resultat de ton envoi à la page de l'autre site ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Oui je dois afficher la page de l'autre site pour utiliser les données renseignées dessus (info : c'est pour une authentification openid, si ça peut t'aider à comprendre).

  8. #8
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Si je veux bien comprendre, tu veux aspirer un page en lui passant des parametres en post c'est ca ?
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Euh... Aspirer doit pas être le terme adéquat. Voici le process résumé :

    Je suis sur un site "rp.com". Dessus j'ai une page de connexion qui contient une frame. Dans cette frame j'ai un formulaire. Lorsque je valide ce formulaire je dois envoyées des informations de connexion vers un autre site "op.com". Je ne maitrise pas op.com car ça ne dépend pas de mon service. Il m'est imposé de dialoguer avec lui via des requêtes HTTP POST. La suite est un dialogue entre les deux sites.

    Voilà, j'espère que ça vous permettra d'avoir quelques billes à m'apporter.
    Pour ma part je sèche lourdement, je débute dans .NET et je suis loin de maitriser tous ses concepts et n'ai quasiment pas de réflex.

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    et puis ta solution c'est le crossbackurl
    il faut que tu changes la destination de la page postée

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Bonjour à vous !

    Merci pour vos participations. nico-pyright, tu parles de CrossPostBack c'est ça ? Si oui c'est ce qui est évoqué dans le premier lien qui tu m'as fourni. Toujours dans cette éventualité j'ai peur que ça ne puisse pas marcher entre différents serveurs, donc différentes applications. En effet, ça voudrait dire que le serveur contacté puisse avoir accès au méthode de mes classes instanciées...
    J'ai omis de préciser que j'étais en Framework 1.1 (histoire de compliquer la chose).

    J'ai un peu de mal à réaliser que ça soit si compliqué de réaliser un "simple" POST de données vers une url donnée...

  12. #12
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    la page destination n'aura pas besoin d'avoir accès à l'objet previouspage (et ne pourra pas), mais il devrait récupérer les données en post si je ne m'abuse

    Sinon, l'autre solution est de changer le mode d'action du formulaire

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Donc selon toi je peux utiliser Server.Transfer ? Est-ce compatible .NET 1.1 ? J'ai pu lire sur le net que ça ne permettait pas de changer de serveur et que l'on ne pouvais que faire un transfert sur un même domaine, qu'en est-il ? Désolé pour le massacre à questions là...

  14. #14
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Si le but de ton formulaire est simplement de faire un POST sur une page, pourquoi ne pas passer par un formulaire classique HTML ?
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Le formulaire qui doit être envoyé est juxtaposé à un autre. En fait dans ma frame j'ai une partie permettant de s'authentifier et une autre pour la création de compte. Etant en .Net je ne peux pas avoir plusieurs form sur la même page. Donc en faisant un simple formulaire HTML ça enverrait vers la même page pour que je lance la procédure de connexion ou de création de compte.
    J'ai aussi absolument besoin d'un traitement sur le codebehind.
    La solution serait alors de pouvoir modifier, dans une fonction liée à un bouton, la page visée par le formulaire et de forcer le submit du formulaire. Impossible à faire depuis le codebehind (il n'a la main que sur la partie coté serveur).

    Après si tu penses à autre chose que ça...

  16. #16
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Tu peux avoir plusieurs form sur ta page... mais un seul avec runat="server"...
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    J'en découvre tous les jours !
    Quid de comment forcer l'envoie du formulaire en question ?

  18. #18
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    sinon, tu surcharges ton formulaire pour changer la destination de l'attribut Action

  19. #19
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    C'est dans l'attribut action de ton form que tu décides du fichier vers lequel se fait la POST.
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Hello,

    Avant tout, merci à vous pour votre aide. Pour une raison que j'ignore, la première méthode que j'ai essayé fonctionne (avec un HttpWebRequest) maintenant.

    Sujet qui est donc résolu, vos idées pourront sans doute aider quelqu'un qui rencontre ce genre de soucis.

    Maintenant problème avec mon serveur IIS, autre problème, autre solution...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Redirection avec passage de paramètre en POST
    Par Florian.L dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/04/2012, 20h49
  2. Passage de paramètre en POST d'une Servlet vers une JSP
    Par guigui5931 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/05/2008, 14h02
  3. Passage de paramètre avec POST
    Par boulette85 dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 20h59
  4. [AS2.0] Passage de paramètres en post
    Par Nip dans le forum Flash
    Réponses: 1
    Dernier message: 06/01/2006, 08h38
  5. passage de paramètre en post
    Par asetti dans le forum ASP
    Réponses: 6
    Dernier message: 07/11/2005, 21h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo