Pregunta

Scenario:

La tarea que tengo a mano es habilitar una solución de inicio de sesión único entre diferentes organizaciones / sitios web. Comienzo como un usuario autenticado en el sitio web de una organización, convierto información específica en un documento XML, cifro el documento con triple des y lo envío como una variable de publicación a la segunda página de inicio de sesión de las organizaciones.

Question:

Una vez que tengo mis datos xml empaquetados, ¿cómo puedo realizar una publicación programáticamente al segundo sitio web y redirigir el navegador del usuario al segundo sitio web también?

Esto debería comportarse como tener un formulario como:

action = " http: //www.www.com/posthere" metodo = " publicar "

... y tiene un campo de texto oculto como:

tipo de entrada = " oculto " value = " mi xml cifrado "

Esto se está escribiendo en los formularios web asp.net 2.0.

-

Editar: Nic pregunta por qué el formulario html que describo anteriormente no funcionará. Respuesta: No tengo control sobre ninguno de los sitios; Estoy construyendo el "intermediario" Eso hace que todo esto suceda. El sitio 1 está reenviando a un usuario a la página que estoy creando. Tengo que crear el XML y luego reenviarlo al sitio 2. El sitio 1 no quiere que el usuario conozca mi sitio, la redirección debe ser transparente.

El proceso que describí anteriormente es lo que ambas partes (sitio A y sitio B) exigen.

¿Fue útil?

Solución

Envíe de vuelta un documento que contenga los datos de entrada ocultos e incluya un controlador de carga que publique el formulario inmediatamente en el otro sitio. El uso de document.ready () de jquery resuelve el problema de si el DOM se carga antes de que ocurra la publicación, aunque hay otras formas de hacerlo sin jquery. Es posible que desee incluir un pequeño mensaje en la pantalla para que el usuario sea redirigido en breve y proporcione un enlace que también haga la publicación

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

Otros consejos

Está pensando en esto también orientado al proceso, le tomaría un mes de domingos tratar de resolver todos los errores y partes móviles con lo que sugiere.

Ya estás haciendo una publicación en otro servidor, por lo que realmente no necesitas hacer nada. El formulario que tiene ya es perfecto, y cuando el otro servidor intercepta la solicitud, es cuando toma la decisión de permitir al usuario y continuar a través del sitio, o redirigirlos de nuevo a su Referente (sic) en el encabezado. Al redirigir al remitente, es posible que deseen agregar un mensaje que indique lo que estaba mal, como? Error = no_auth

Escribí sobre esto para otra pregunta hace un tiempo. Espero que esto ayude:

¿Cómo se pasa una sesión autenticada? entre dominios de aplicación

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top