是否可以从asp.net mvc应用程序和python应用程序共享会话数据?

时间:2012-03-07 09:30:49

标签: asp.net-mvc django

我希望能够在asp.net mvc应用程序和python / django应用程序之间共享一些数据。我想分享的数据类型是身份验证或会话数据。

4 个答案:

答案 0 :(得分:4)

只要您访问两个框架之间的某些共享资源,

这当然是可能的。可能有几种方法可以做到这一点,但最明显的一种方法是使用一些共享后备存储,即。数据库甚至可能更快的memcached。我不是Django用户,但据我所知,memcached在其中得到支持......

当然有一个与此相关的更复杂的情况,那就是数据兼容性。您可能必须使用两种框架都能理解的可互换格式。 XML,JSON,BSON或类似的。因此,即使使用memcached,您也必须执行翻译

答案 1 :(得分:3)

我将如何分享会话......

使会话Cookie子域不可知

<httpCookies domain=".mydomain.tld" />

我想要在

之间分享会话的两个子域名
www.mydomain.tld [ASP.net MVC app]
extra.mydomain.tld [Python app]

在ASP.net中创建一个简单的Web服务或通用处理程序,它返回用JSON或XML序列化的用户会话。

如果使用通用处理程序,请记住在类上使用IReadOnlySessionState或IRequiresSessionState接口。

现在从extra.mydomain.tld您可以调用您的www.mydomain.tld / [Get / Set] SessionValue处理程序或服务。它将获取您的“.mydomain.tld”cookie并允许共享修改值。

答案 2 :(得分:2)

我建议使用共享数据库的以下方法(可以是共享缓存或任何其他数据存储):

  1. 当用户访问您域中的某个应用程序时,您将使用密钥“_shared_session”创建一个cookie,并使用您的应用程序生成的随机字符串的值;
  2. 将此cookie的值保存到数据库中,并将其与包含要在应用程序之间共享的数据的JSON对象相关联;
  3. 当用户访问其他应用程序时,验证是否存在具有密钥“_shared_session”的cookie并读取其值;
  4. 使用cookie的值,您可以检索共享的JSON对象。
  5. 快速回答: 在创建新会话之前应该有一个查找共享Cookie的过滤器

答案 3 :(得分:0)

可以选择在MS SQL Server数据库中存储会话状态,该数据库可立即使用。使用下一个kb http://support.microsoft.com/kb/317604中的步骤 它更多的是配置,而不是实现。 您可以编写自己的自定义存储提供程序,但有任何理由吗?

我不熟悉python,但至少有ODBC驱动程序 http://wiki.python.org/moin/SQL%20Server