也許我錯過了一些關於這方面的基礎知識,我只是不明白爲什麼表單身份驗證不是在Session的基礎上構建的。爲什麼會話狀態與表單身份驗證狀態不同?
我已經與窗體身份驗證超時和會話超時的一些問題,我知道如何得到角落找尋這些問題,感謝博客帖子like this one.
但他們爲什麼分開?
也許我錯過了一些關於這方面的基礎知識,我只是不明白爲什麼表單身份驗證不是在Session的基礎上構建的。爲什麼會話狀態與表單身份驗證狀態不同?
我已經與窗體身份驗證超時和會話超時的一些問題,我知道如何得到角落找尋這些問題,感謝博客帖子like this one.
但他們爲什麼分開?
我只是不明白爲什麼表單身份驗證不會建立在Session的頂部。
窗體身份驗證使用這是常見的所有應用程序的cookie。只有當前認證的用戶名存儲在cookie中。另一方面,會話可以存儲任意大的值,因爲它存儲在服務器上。您無法將任意大數據保存到Cookie中。會話狀態有很多問題。例如,如果您正在Web場中運行,則需要確保您使用的是進程外會話持久性,而不是默認的InProc,以便Web場的所有節點都可以共享相同的會話數據。我個人從不在我的應用程序中使用會話。我做的第一件事就是確保我禁用我的web.config所有會話狀態:
<sessionState mode="Off" />
這樣,我相信,我的項目工作沒有開發商會做使用ASP.NET的錯誤會話。他們將旨在無國籍的Web應用程序變爲有狀態。
與餅乾你沒有這樣的問題。您可以向網絡農場拋出儘可能多的節點,以面對不斷增加的用戶負載,而無需擔心服務器上的任何狀態。
基本,因爲有些人可能會選擇只使用其中的一個,因爲它們是兩個不同的模塊 - 並且都提供了自定義界面。
而且一個用戶可以有出會話從未被驗證。
也有一些其他的(比如我)就可以取得完全自定義會話模塊,但保留身份驗證模塊。
因此,這是兩個不同的模塊和它們不能被連接。
只是挑剔:加密票據存儲到cookie http://msdn.microsoft.com/en-us/library/ff647070.aspx – Joe
我已經做了會話狀態:) – Aristos
@Aristos,你的意思是''?我向你保證,這是有史以來最好的會話狀態模式。 –