我正在爲ASP.NET MVC應用程序實現自定義會話狀態提供程序。我的要求是我必須將會話數據作爲xml
存儲在Sql服務器的自定義表中。在ASP.NET MVC中實現自定義會話狀態提供程序
我可以使用現有的SQL 會話狀態提供(覆蓋一些方法),要麼我已經實現抽象類SessionStateStoreProviderBase
從頭開始創建?
我正在爲ASP.NET MVC應用程序實現自定義會話狀態提供程序。我的要求是我必須將會話數據作爲xml
存儲在Sql服務器的自定義表中。在ASP.NET MVC中實現自定義會話狀態提供程序
我可以使用現有的SQL 會話狀態提供(覆蓋一些方法),要麼我已經實現抽象類SessionStateStoreProviderBase
從頭開始創建?
爲什麼你不只是使用SQL服務器作爲你的狀態提供者?你可以在配置中設置它,並且這是自動發生的,那麼SQL服務器會將數據存儲爲序列化的二進制數據並有效地檢索它?
簡短的回答是肯定的,你可以,但它正在重新發明車輪。你是否需要將這些數據用於其他任何事情,或者將它自己編輯出來嗎?我傾向於使用一個單獨的過程。你將爲自己創建一些工作,如果你需要稍後再看,你最好將它保存在sessiopn中。
讓你的XML文檔會話對象
Session["MyCustomXml"] = mydoc;
var mydoc = Session["MyCustomXml"] as XmlDocument;
然後用下面的配置,所以它存儲在SQL Server。
<sessionState
mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
cookieless="false"
timeout="20"
/>
如果您需要在以後的樣子,只是它的SessionID保存到磁盤somwhere安全作爲文件名,以保持它的獨特。
你不需要使用會話狀態,你可以做到無狀態。沒有必要使用沉重的會話狀態提供程序。 – PositiveGuy 2012-05-24 05:16:51
sql服務器會話狀態提供程序不會比通過安全會話Id存儲會話更重要,這是個問題。 – Gats 2012-05-25 01:25:58