asp.net会话技术

Pra*_*ant 1 asp.net asp.net-mvc session-state

我对asp.net会话管理非常了解.
但我对此几乎没有任何疑问.

  1. 何时创建会话ID.当客户端使用用户名和密码登录应用程序时.或当客户端尝试访问default.aspx页面时.
  2. 服务器如何服务客户端会话请求
  3. 我们可以在js中访问会话ID吗?
  4. 在客户端服务器会话创建方面,ASP.NET Web表单和ASP.NET MVC之间有什么区别吗?

任何给我非常深入了解会话的链接/书都会对我有所帮助.

提前致谢 !!!PRASHANT

Dar*_*rov 7

我对asp.net会话管理非常了解.

我认为你在滥用这里的条款.ASP.NET Session是一回事,Forms Authentication完全不同的事情.我想你在这里谈论表单身份验证.

1)何时创建会话ID.当客户端使用用户名和密码登录应用程序时.或当客户端尝试访问default.aspx页面时.

当有人调用FormsAuthentication.SetAuthCookie通常在LogOn操作验证用户名和密码凭据后发生的方法.

2)服务器如何服务客户端会话请求.

FormsAuthentication.SetAuthCookie调用方法时,会向客户端发出表单身份验证cookie,并在每个后续请求中将此cookie发送到服务器.cookie包含用户名的加密值,允许服务器填充IPrincipal.

3)我们可以在js中访问会话ID吗?

不,表单身份验证cookie随httponly标志一起发出,这意味着客户端脚本无法访问它.

4)在客户端服务器会话创建方面,ASP.NET Web表单和ASP.NET MVC之间有什么区别吗?

它们完全一样.实际上没有这样的概念ASP.NET MVC client server session creation.所有这些机制都来自ASP.NET.


现在让我们假设您在问题中实际谈到了ASP.NET Session.我会尝试在这种情况下回答你的问题:

1)何时创建会话ID.当客户端使用用户名和密码登录应用程序时.或当客户端尝试访问default.aspx页面时.

每当某些服务器端代码尝试使用该HttpContext.Session属性读取或写入会话时.

2)服务器如何服务客户端会话请求.

当某个服务器端脚本尝试读取或写入HttpContext.Session对象时,会向客户端发出会话cookie .此cookie在每个后续请求时都会发送到服务器.cookie只是一个允许访问存储在服务器上的会话数据的id.默认情况下,会话数据存储在内存中.但是,您也可以将ASP.NET配置为在proc-of-proc或SQLServer中存储它.有关各种会话状态模式的更多信息,请参阅MSDN.

3)我们可以在js中访问会话ID吗?

不,ASP.NET会话cookie随httponly标志一起发出,意味着客户端脚本无法访问它.

4)在客户端服务器会话创建方面,ASP.NET Web表单和ASP.NET MVC之间有什么区别吗?

它们完全一样.实际上没有这样的概念ASP.NET MVC client server session creation.所有这些机制都来自ASP.NET.