簡體   English   中英

如何在Azure上運行的MVC 3中將會話信息從一個屏幕傳遞到另一個屏幕

[英]How can I pass session information from one screen to another in MVC 3 running on Azure

我有一個屏幕,用戶從下拉列表中選擇數據庫源。 一旦選擇了,我希望將信息傳遞到其他屏幕上,這樣用戶就不必一直選擇。

如何將這樣的信息從一個屏幕傳遞到另一個屏幕? 請注意,信息只是非常小的事情,如:

DatasourceID - 2 characters
SubjectID - 2 characters

當我在Azure上運行時,我可以假設存儲的最佳位置是在客戶端嗎? 我看到一個存儲數據的實現,如下所示:

Session["abc"] = "def";
if (Session["abc"] != null)
etc ...

這是最好的方式還是我錯過了什么。 另外,每次在不同服務器上提供頁面時,上述工作方式如何? 以上是否在本地存儲信息?

會話存儲在服務器端。 現在,在Azure中,您可以選擇存儲的幾個選項。 這取決於您想要對此數據源執行的操作。 如果您只需要在以下屏幕中顯示,則可以將其存儲在存儲在會話中的TempData中。 它保存在那里,直到你閱讀它。

現在,您可以使用以下選項來存儲會話狀態:

  1. 在Azure AppFabric緩存中
  2. 在SQL Azure數據庫中
  3. 在blob存儲

Azure AppFabric緩存有一個Session提供程序,它很容易設置。 您只需在Azure門戶中創建一個新緩存,然后單擊工具欄上的相應按鈕即可獲取所需的web.config條目。 這也在這里詳細解釋

使用它可以將會話存儲在會話中。 缺點是它有點貴(128 MB緩存大約45美元/月)。 因此,另一種方法是在SQL Azure中存儲會話狀態。 有一個SQL Azure的Session提供程序。

這是Scott Hanselman對ASP.NET通用提供程序的精彩介紹的鏈接 如果您沒有使用成員資格,那么您只需要設置System.Web.Providers.DefaultSessionStateProvider

只需確保將連接字符串指向SQL Azure DB即可。 注意:您必須在連接字符串中設置MultipleActiveResultSets=True ,因此如果您已從門戶復制SQL Azure連接字符串,請務必將其添加回來。

然后在培訓套件中還有一個用於博客存儲的會話提供程序,可通過http://code.msdn.microsoft.com/windowsazure/Windows-Azure-ASPNET-03d5dc14上的示例應用程序獲得 我相信它不受MS的支持。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM