也许我错过了一些关于这方面的基础知识,我只是不明白为什么表单身份验证不是在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,你的意思是''?我向你保证,这是有史以来最好的会话状态模式。 –