Domanda

Scenario:

Il compito che ho a portata di mano è quello di abilitare una soluzione single signon tra diverse organizzazioni / siti Web. Comincio come utente autenticato sul sito Web di un'organizzazione, converto informazioni specifiche in un documento Xml, crittografo il documento con un triplo des e lo invio come una variabile post alla seconda pagina di accesso delle organizzazioni.

Domanda:

Dopo aver impacchettato i miei dati XML, come posso eseguire programmaticamente un post sul secondo sito Web e far reindirizzare il browser dell'utente anche sul secondo sito Web.

Questo dovrebbe comportarsi come se avesse un modulo come:

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

... e con un campo di testo nascosto come:

input type = " nascosto " value = " my xml crittografato "

Questo è stato scritto nei moduli web asp.net 2.0.

-

Modifica: Nic chiede perché il modulo HTML che descrivo sopra non funzionerà. Risposta: Non ho alcun controllo su entrambi i siti; Sto costruendo il "middle man" ciò rende tutto ciò possibile. Il sito 1 inoltra un utente alla pagina che sto creando, devo costruire l'XML e quindi inoltrarlo al sito 2. Il sito 1 non vuole che l'utente sappia del mio sito, il reindirizzamento dovrebbe essere trasparente.

Il processo che ho descritto sopra è il mandato di entrambe le parti (sito A e sito B).

È stato utile?

Soluzione

Invia un documento che contiene il da con input nascosto e include un gestore onload che invia immediatamente il modulo all'altro sito. L'uso di document.ready () di jquery risolve il problema se il DOM viene caricato prima che si verifichi il post, anche se ci sono altri modi per farlo senza jquery. Potresti voler includere qualche piccolo messaggio sullo schermo in modo che l'utente venga reindirizzato a breve e fornisca un link che fa anche il post

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

Altri suggerimenti

Stai pensando a questo troppo orientato al processo, ci vorrebbe un mese di domenica per provare a risolvere tutti i bug e le parti in movimento con ciò che suggerisci.

Stai già scrivendo un post su un altro server, quindi non devi davvero fare nulla. Il modulo che hai è già perfetto e quando l'altro server intercetta la richiesta che è quando prende la decisione di consentire all'utente di entrare e continuare attraverso il sito, o reindirizzarli al loro Referer (sic) nell'intestazione. Quando reindirizzano di nuovo al Referente, potrebbero voler attaccare su un messaggio che dice cosa non va, come? Errore = no_auth

Ho scritto su questo per un'altra domanda qualche tempo fa. Spero che questo aiuti:

Come si passa a una sessione autenticata tra domini app

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top