none
Como compartir Cookies y Session entre 2 aplicaciones RRS feed

  • Pregunta

  • Hola a todos

    Tengo una aplicación en MVC 4, esta aplicación esta hospedada en un servidor y configurada digamos para que opere con varios dominios:

    1. dominio.com: Es usado solo para ciertos controladores en particular y un area.
    2. dominio.com.xx: Corresponde a cada país y es usadado en el 90% de la web.

    Existe unos filtros que identifican la modalidad en la que un controlador funciona, es decir, si funciona de manera global ".com" o funciona para un pais en especifico. Ejemplo

    • Controlador Global (dominio.com/Global): Opera solo para el registro .com, si se produce un request con el dominio de un pais (dominio.com/Global.ar), existen unos filtros en los controladores que realizan un redirect aputando a .com.
    • Controlador Posts (dominio.com.xx/Posts): Se debe ingresar con el dominio de un pais ya que la información mostrada es especifica. Si se ingresa con (dominio.com/Posts) hay un filtro que redirige a una vista que le indica al usuario que seleccione su pais.

    El problema que se me esta presentando, es que las Cookies y Session que almaceno con dominio.com no las puedo ver con los dominios relacionados a los paises y viceversa.. Necesito que estos sean globales para mi aplicacion sin importar si se entra con .com, .com.ar, .com.mx, .com.ve, etc...

    Como logro esto? El login si he logrado hacerlo compartido pero no esto...

    Gracias


    • Editado Zr-.- miércoles, 21 de diciembre de 2016 17:56
    miércoles, 21 de diciembre de 2016 17:56

Todas las respuestas

  • hola

    quizas algo comoe sto de uan pista

    [ASP.NET/IIS] Como compartir las variables de Session entre diferentes Applicaciones Web

    pero no es un camino simple el que quieres lograr

    las cookies no veo que se puedan compartir

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 21 de diciembre de 2016 18:39
  • [...] las Cookies y Session que almaceno con dominio.com no las puedo ver con los dominios`[...] .com, .com.ar, .com.mx, .com.ve, etc...

    Con la sesión sí que se puede jugar, dado que la gestiona ASP.NET en el servidor común, con lo que "trampeando" con el servidor (por ejemplo usando alguna técnica como la que ya te han sugerido en otro mensaje) sí que se puede conseguir algo. Pero con las cookies no hay nada que hacer. El problema no es de ASP.NET ni de MVC sino del navegador. Los navegadores solo envían la cookie al dominio original que la envió. Puedes hacer que se envíen a los subdominios del dominio padre, es decir, si tienes "dominio.com" y "ar.dominio.com" entonces sí que puedes configurar la cookie para que vaya a ambos. Pero si en lugar de "ar.dominio.com" tienes "dominio.com.ar", entonces ya no hay forma de convencer al navegador de que la envíe. Así que tendrás que prescindir de las cookies y guardar en otro sitio la información que pensabas guardar en ella. Por ejemplo, si ibas a guardar las opciones seleccionadas por el usuario, puedes en su lugar guardarlas en el Profile asociado al Login (que debe funcionar dado que mencionas que ya has conseguido compartir el Login).
    miércoles, 21 de diciembre de 2016 18:56
  • hola

    quizas algo comoe sto de uan pista

    [ASP.NET/IIS] Como compartir las variables de Session entre diferentes Applicaciones Web

    pero no es un camino simple el que quieres lograr

    las cookies no veo que se puedan compartir

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Hola, creo que me pasaste 2 links errados porque ambos dicen lo mismo "Nueva versión Ajax Control Toolkit".

    Y la Session es igual de complicada de mantener? O existe algun otro mecanismo que pueda usar que no sea base de datos?

    miércoles, 21 de diciembre de 2016 19:10
  • [...] las Cookies y Session que almaceno con dominio.com no las puedo ver con los dominios`[...] .com, .com.ar, .com.mx, .com.ve, etc...

    Con la sesión sí que se puede jugar, dado que la gestiona ASP.NET en el servidor común, con lo que "trampeando" con el servidor (por ejemplo usando alguna técnica como la que ya te han sugerido en otro mensaje) sí que se puede conseguir algo. Pero con las cookies no hay nada que hacer. El problema no es de ASP.NET ni de MVC sino del navegador. Los navegadores solo envían la cookie al dominio original que la envió. Puedes hacer que se envíen a los subdominios del dominio padre, es decir, si tienes "dominio.com" y "ar.dominio.com" entonces sí que puedes configurar la cookie para que vaya a ambos. Pero si en lugar de "ar.dominio.com" tienes "dominio.com.ar", entonces ya no hay forma de convencer al navegador de que la envíe. Así que tendrás que prescindir de las cookies y guardar en otro sitio la información que pensabas guardar en ella. Por ejemplo, si ibas a guardar las opciones seleccionadas por el usuario, puedes en su lugar guardarlas en el Profile asociado al Login (que debe funcionar dado que mencionas que ya has conseguido compartir el Login).

    Hola, gracias por la respuesta...

    En verdad creo que es excelente idea lo de guardarlo en el Profile, creo que debe funcionar... Realmente tengo que guardar algo muy sencillo que es la información del ultimo pais accedido para luego hacer unos redirects, es decir, si entro en dominio.com.ar guarda ese valor del dominio para que en algunos casos desde dominio.com redirijo allí...

    Sera revisar si haciendolo como me indicas sirve.

    miércoles, 21 de diciembre de 2016 19:49
  • hola

    >>creo que me pasaste 2 links errados porque ambos dicen lo mismo "Nueva versión Ajax Control Toolkit".

    ehh yo veo los link correctamente

    >>Y la Session es igual de complicada de mantener? O existe algun otro mecanismo que pueda usar que no sea base de datos?

    la solucion es no usar Session ni cookies

    podrias usar el storage del lado del cliente en html5

     Cómo usar LocalStorage con JavaScript y HTML5

    saludo


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 21 de diciembre de 2016 20:47
  • hola

    >>creo que me pasaste 2 links errados porque ambos dicen lo mismo "Nueva versión Ajax Control Toolkit".

    ehh yo veo los link correctamente

    >>Y la Session es igual de complicada de mantener? O existe algun otro mecanismo que pueda usar que no sea base de datos?

    la solucion es no usar Session ni cookies

    podrias usar el storage del lado del cliente en html5

     Cómo usar LocalStorage con JavaScript y HTML5

    saludo


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Hola, no me convence mucho ya que todas las Sessiones las administro en los Request por lo que tendria que crear mecanimos que envian la informacion a las vistas para asi con javascript porder realizar las cargas, etc...

    Ya que voy hacerlo con Windows Azure e investigando del tema, me di cuenta que tengo otroo problema y es que windows azure no es compatible como lo estoy usando ahorita (por el tema que existen multiples instancias que pueden atender un request).

    Entonces estoy intentando implementar el Session por SQL Server como indican aqui:

    https://blogs.msdn.microsoft.com/appfabricannounce/2010/08/04/using-sql-azure-for-session-state/

    Lo que no me convence es que el links es del 2010 y no se si esta desactualiado, aparte te indican que descargues un archivo ASPStateInstall.sql y no esta...

    jueves, 22 de diciembre de 2016 0:44