2012-03-07 32 views

Trả lời

4

Điều này tất nhiên có thể là miễn là bạn truy cập một số tài nguyên được chia sẻ giữa cả hai khung công tác. Có thể có một số cách để làm điều đó nhưng một trong những rõ ràng nhất sẽ được sử dụng một số cửa hàng sao lưu được chia sẻ tức là. cơ sở dữ liệu hoặc thậm chí có thể memcached sẽ nhanh hơn. Tôi không phải là một người dùng Django nhưng theo như tôi biết memcached được hỗ trợ trong nó ...

Tất nhiên là một kịch bản phức tạp hơn liên quan đến điều này và đó là khả năng tương thích dữ liệu. Bạn có thể sẽ phải sử dụng một số định dạng hoán đổi cho nhau mà cả hai khung hiểu nghĩa là. XML, JSON, BSON hoặc tương tự. Vì vậy, ngay cả khi sử dụng memcached bạn sẽ phải làm điều này dịch.

+0

Có đó là những gì tôi đã có trong tâm trí quá. Tôi đã thực sự quan tâm nhiều hơn bởi một ví dụ thực tế hơn là vấn đề thực sự của tôi là chia sẻ dữ liệu mà IIS/ASP.NET tạo ra dưới mui xe (authentification/session for inst). Nó sẽ yêu cầu để tạo ra một mô-đun cho inst ... – Dave

+0

Một cách tốt hơn để chia sẻ xác thực là bằng cách sử dụng Oauth 2. Google, Facebook, Twitter và rất nhiều công ty Internet làm auth theo cách này. Bạn sẽ cần triển khai nhà cung cấp oauth. – barbolo

0

Có một tùy chọn để lưu trữ trạng thái phiên trong cơ sở dữ liệu MS SQL Server có sẵn trong hộp. Sử dụng các bước từ kb http://support.microsoft.com/kb/317604 tiếp theo Đó là thông tin thêm về cấu hình chứ không phải triển khai. Bạn có thể viết nhà cung cấp lưu trữ tùy chỉnh của riêng mình nhưng có lý do nào cho điều đó không?

Tôi không quen với trăn, nhưng có ít trình điều khiển ODBC ít nhất là cho nó http://wiki.python.org/moin/SQL%20Server

3

Làm thế nào tôi có thể chia sẻ phiên ...

Tận dụng Session Cookie sub-domain thuyết bất khả tri

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

có tôi hai tiểu lĩnh vực mà tôi muốn chia sẻ phiên giữa

www.mydomain.tld [ASP.net MVC app] 
extra.mydomain.tld [Python app] 

Tạo một dịch vụ web đơn giản hoặc trình xử lý chung trong ASP.net trả về phiên của người dùng được tuần tự hóa bằng JSON hoặc XML.

Nếu bạn sử dụng trình xử lý chung, hãy nhớ sử dụng giao diện IReadOnlySessionState hoặc IRequiresSessionState trên lớp.

Bây giờ từ extra.mydomain.tld, bạn có thể gọi bộ xử lý hoặc dịch vụ www.mydomain.tld/[Get/Set] SessionValue của bạn. Nó sẽ nhận trên cookie ".mydomain.tld" của bạn và cho phép chia sẻ các giá trị sửa đổi.

+0

Tôi muốn biết nơi bạn sẽ đặt logic này trong cho asp.net MVC? Bạn sẽ đưa vào một số mô-đun IIS? – Dave

2

Tôi muốn giới thiệu các phương pháp sau đây sử dụng một cơ sở dữ liệu dùng chung (có thể là một bộ nhớ cache chia sẻ hoặc bất kỳ kho dữ liệu khác):

  1. Khi người dùng truy cập vào một trong các ứng dụng của bạn tại tên miền của bạn, bạn tạo một cookie với khóa "_shared_session" và với giá trị của một chuỗi ngẫu nhiên được tạo bởi ứng dụng của bạn;
  2. Lưu giá trị của cookie này vào cơ sở dữ liệu và liên kết nó với đối tượng JSON đang giữ dữ liệu bạn muốn chia sẻ giữa các ứng dụng;
  3. Khi người dùng truy cập ứng dụng khác, bạn xác minh xem cookie có khóa "_shared_session" tồn tại và đọc giá trị của nó hay không;
  4. Với giá trị của cookie, bạn có thể truy xuất đối tượng JSON được chia sẻ.

câu trả lời nhanh:cần có một bộ lọc tìm kiếm một cookie chia sẻ trước khi tạo ra một phiên làm việc mới

Các vấn đề liên quan