Me gustaría poder compartir algunos datos entre una aplicación asp.net mvc y una aplicación python/django. El tipo de datos que me gustaría compartir son autentificación o datos de sesión.¿es posible compartir datos de sesión desde una aplicación asp.net mvc y una aplicación python?
Respuesta
Esto es por supuesto posible siempre que acceda a algunos recursos compartidos entre ambos marcos. Probablemente existan varias formas de hacerlo, pero una de las más obvias sería usar alguna tienda de respaldo compartido, es decir. base de datos o incluso memcached que sería más rápido. No soy un usuario de Django, pero por lo que sé que es compatible con memcached ...
Por supuesto, hay un escenario más complejo relacionado con esto y que es compatibilidad de datos. Es probable que tenga que usar algún formato intercambiable que ambos marcos comprendan, es decir. XML, JSON, BSON o similar. Entonces, incluso cuando se usa memcached, tendrá que hacer esta traducción.
Hay una opción para almacenar el estado de la sesión en la base de datos del servidor MS SQL que está disponible de fábrica. Use los pasos del siguiente kb http://support.microsoft.com/kb/317604 Se trata más de la configuración, no de la implementación. Puede escribir su propio proveedor de almacenamiento personalizado, pero ¿hay alguna razón para eso?
No estoy familiarizado con Python, pero hay por lo menos los conductores de ODBC para que http://wiki.python.org/moin/SQL%20Server
Cómo me gustaría compartir la sesión ...
Hacer el subdominio cookie de sesión agnóstico
<httpCookies domain=".mydomain.tld" />
tengo mis dos subdominios que quiero compartir sesión entre
www.mydomain.tld [ASP.net MVC app]
extra.mydomain.tld [Python app]
Cree un servicio web simple o controlador genérico en ASP.net que devuelva la sesión del usuario serializada en JSON o XML.
Si utiliza el controlador genérico, recuerde utilizar las interfaces IReadOnlySessionState o IRequiresSessionState en la clase.
Ahora desde extra.mydomain.tld puede llamar a su controlador www.mydomain.tld/[Get/Set] SessionValue o servicio. Recogerá su cookie ".midominio.tld" y permitirá compartir los valores de modificación.
Me gustaría saber dónde pondría esta lógica en asp.net mvc? ¿Pondría algunos módulos de IIS? – Dave
Yo recomendaría el siguiente enfoque utilizando una base de datos compartida (que podría ser una memoria caché compartida o cualquier otro almacén de datos):
- Cuando un usuario accede a una de las aplicaciones en su dominio, se crea una cookie con el clave "_shared_session" y con el valor de una cadena aleatoria generada por su aplicación;
- Guarda el valor de esta cookie en la base de datos y relacionala con un objeto JSON que contiene los datos que deseas compartir entre las aplicaciones;
- Cuando el usuario accede a la otra aplicación, verifica si la cookie con la clave "_shared_session" existe y lee su valor;
- Con el valor de la cookie, puede recuperar el objeto JSON compartido.
respuesta rápida:debe haber un filtro que busque una cookie compartida antes de crear una nueva sesión
- 1. ¿Es posible compartir una página maestra entre MVC y webforms?
- 2. Alojar aplicación web ASP.Net y consumir desde otra aplicación MVC
- 3. ¿Cómo compartir la mayor cantidad de código entre un WPF y una aplicación ASP.NET MVC?
- 4. ¿Es posible crear una aplicación web asp.net mvc compatible con ms .net y mono?
- 5. cómo puedo compartir una sesión asp.net entre http y https
- 6. salida Minify HTML desde una aplicación ASP.Net MVC
- 7. Compartir una sesión entre Ruby y PHP
- 8. Obtener datos de Python de una aplicación asp.net AJAX
- 9. Asp.Net MVC y sesión
- 10. ¿Cómo puedo compartir una sesión en múltiples subdominios en ASP.NET?
- 11. ¿Es posible con ASP.NET MVC representar una vista desde una plantilla extraída de una base de datos?
- 12. Compartir una tienda de sesión en Redis para una aplicación Django y Express.js
- 13. ¿Es posible utilizar HttpBrowserCapabilities desde una aplicación de consola C#?
- 14. Múltiples idiomas en una aplicación ASP.NET MVC?
- 15. ¿Cuánto tiempo durará una aplicación ASP.NET MVC?
- 16. ¿Cómo compartir sesiones entre PHP y la aplicación ASP.net?
- 17. ¿Puede una aplicación local html5 tener una sesión asp.net? (Aplicación web local para iPhone)
- 18. Creación de una aplicación web ASP.NET MVC escalable
- 19. Java: ¿Es posible enviar SMS desde una aplicación Java?
- 20. Buiding aplicación ASP.NET sin estado de sesión?
- 21. Al mezclar jQuery y YUI en una aplicación, ¿es posible?
- 22. Crear una aplicación ASP.NET MVC Web Farm Ready
- 23. ¿Es posible 'copiar y pegar' toda una aplicación de Rails?
- 24. ¿Cómo calentar una aplicación ASP.NET MVC en IIS 7.5?
- 25. ASP.NET MVC Aplicación web vs Aplicación web ASP.NET
- 26. ¿Es posible implementar una aplicación ASP.NET como aplicación de escritorio (con componente de servidor)
- 27. ASP.NET MVC: prácticas recomendadas para mantener el estado de la sesión en una aplicación tipo asistente
- 28. ¿Existe una manera simple de compartir datos de sesión almacenados en Redis entre Rails y la aplicación Node.js?
- 29. Ejecutando una aplicación MVC como una sub-aplicación?
- 30. Autenticación del servicio web ASP.NET desde una aplicación para iPhone
Sí que era lo que tenía en mente también. En realidad, me interesaba más un ejemplo más práctico, ya que mi verdadero problema es compartir datos que IIS/ASP.NET crea bajo el capó (autenticación/sesión para inst). ¿Será necesario crear un módulo para inst ... – Dave
Una mejor forma de compartir la autenticación es mediante Oauth 2. Google, Facebook, Twitter y muchas empresas de Internet lo hacen de esta manera. Debería implementar un proveedor de Oauth. – barbolo