Question

Scénario:

Mon travail consiste à activer une solution à authentification unique entre différentes organisations / sites Web. Je commence en tant qu'utilisateur authentifié sur le site Web d'une organisation, convertis des informations spécifiques en un document XML, crypte le document avec triple des et l'envoie sous forme de variable de publication à la deuxième page de connexion de l'organisation.

Question:

Une fois les données XML emballées, comment puis-je programmer un post sur le deuxième site Web par programmation et rediriger également le navigateur de l'utilisateur vers le deuxième site Web.

Cela devrait se comporter comme si vous aviez un formulaire tel que:

action = "http: //www.www.com/posthere" method = "post"

... et ayant un champ de texte masqué tel que:

type d'entrée = " caché " valeur = "mon xml crypté"

Ceci est écrit dans les formulaires Web asp.net 2.0.

-

Modifier: Nic demande pourquoi le format HTML que je décris ci-dessus ne fonctionnera pas. Réponse: Je n'ai aucun contrôle sur aucun des sites. Je construis le "homme du milieu" & cela rend tout cela possible. Le site 1 transfère un utilisateur à la page que je suis en train de créer, je dois construire le XML, puis le transférer vers le site 2. Le site 1 ne veut pas que l'utilisateur connaisse mon site, la redirection doit être transparente.

Le processus que j'ai décrit ci-dessus correspond à ce que les deux parties (site A et site B) ont mandaté.

Était-ce utile?

La solution

Renvoyez un document contenant l'entrée avec une entrée masquée et incluez un gestionnaire de chargement qui poste le formulaire immédiatement sur l'autre site. L'utilisation de document.ready () de jquery résout le problème de savoir si le DOM est chargé avant la publication, bien qu'il existe d'autres moyens de le faire sans jquery. Vous voudrez peut-être inclure un petit message à l’écran indiquant que l’utilisateur sera prochainement redirigé et fournir un lien qui effectue également la publication

...headers left out...

<script type='text/javascript'>

$(document).ready( function() {
   $('form:first').submit();
 });
</script>

<body>
   <form action='othersiteurl' method='POST'>
       <input type='hidden' value='your-encrypted-xml" />
   </form>
</body>

Autres conseils

Vous pensez à ce processus trop orienté, cela vous prendrait un mois de dimanche pour essayer de résoudre tous les bugs et pièces mobiles avec ce que vous suggérez.

Vous publiez déjà une publication sur un autre serveur, vous n'avez donc rien à faire. Le formulaire que vous avez est déjà parfait, et lorsque l'autre serveur intercepte la demande, c'est-à-dire qu'il prend la décision d'autoriser ou non l'utilisateur à entrer sur le site et de le rediriger vers son référent (sic) dans l'en-tête. Lorsqu'ils redirigent vers le référant, ils peuvent vouloir ajouter un message indiquant ce qui n'allait pas, tel que? Error = no_auth

J'ai écrit à ce sujet pour une autre question il y a quelque temps. J'espère que cela vous aidera:

Comment passez-vous une session authentifiée entre les domaines d'application

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