2015-04-30 117 views
2

由於ASP.NET MVC中的會話狀態爲not reccomended。我試圖瞭解在什麼情況下使用會話。我知道使用TempData創建一個會話,但是還有什麼其他的情況,並且爲了更好的安全性,我如何配置會話狀態超時有什麼關係?ASP.NET MVC會話狀態超時

<sessionState cookieName="s" timeout="20" /> 
+1

你可以用在需要的地方 –

回答

5

接受的答案您引用美國部分

這往往會導致會話的過度使用,填充旨在表明當前有哪些對象進行交互與正在開會「當前」變量。這種過度使用反過來使應用程序非常依賴狀態,並且很難確定預期的行爲(「這個變量是否被填充?」「我有當前的訂單ID嗎?」)。

MVC是圍繞你的網站是一個視圖到的信息的邏輯模型的思想構建。它鼓勵通過使用簡單的控制器迴應與作爲HTTP請求

會話的一部分傳遞關鍵信息的行爲具有無狀態的操作並不是一件壞事,當你的網站需要一定的內容綁定到特定的用戶,無論是出於安全或個性化目的。爲此目的使用會話是好的,預期的和正常的。

你應該避免做餡是用任何會話,並且可能需要在你的web應用程序的任何地方的所有信息。花點時間學習和理解MVC體系結構,並贊成加載在實際呈現頁面時需要呈現給定頁面的數據。只緩存加載相對昂貴的東西,或者在許多/所有頁面上都需要。

請問我如何配置會話狀態超時以獲得更好的安全性?

會話超時時間的主要問題是會話劫持攻擊,它允許中間的一個人攔截會話信息並控制來自黑客控制下的不同設備的會話。對於大多數應用程序,我沒有看到默認會話超時錯誤。

的另一個問題是,從他們的設備一走了之,留下無人看管的人。這樣做的人比你的網站有更多的安全隱患。正如你所提到

+1

尼斯問答環節,你在我沒有指定的空白填補。 – Greg

-1

,這是事實,在MVC不建議會話。因爲,在mvc身份是用於身份不需要session.the數據存儲在配置文件中。當你想維護多個頁面或多個控制器值

會議是在這樣的條件下使用。例如,在登錄後,您維護用戶名並保留它,直到您留在應用程序中。雖然tempdata用於保存或維護當前操作的值,並且該值在下一個操作後被丟棄

會話狀態不考慮安全性,因此不需要更改會話超時值安全。