我对asp.net会话管理有很好的理解。
但我对此有几点疑问。asp.net会话技术
- 当会话ID被创建时。当客户端用用户名和密码登录到应用程序时。或者当客户端尝试访问default.aspx页面时。
- 服务器如何提供客户端会话请求。
- 我们可以访问js中的会话ID吗?
- 在客户端服务器会话创建方面,ASP.NET Web窗体和ASP.NET MVC之间有什么区别吗?
任何有关会话的深入思考的链接/书籍都会对我有所帮助。
在此先感谢! Prashant
我对asp.net会话管理有很好的理解。
但我对此有几点疑问。asp.net会话技术
任何有关会话的深入思考的链接/书籍都会对我有所帮助。
在此先感谢! Prashant
我对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会话在你的问题。我将尝试在这种情况下回答您的问题:
1)创建会话标识时。当客户端用用户名和密码登录到应用程序 时。或者当客户端尝试访问default.aspx 页面时。
每当某些服务器端代码尝试使用HttpContext.Session
属性读取或写入会话时。
2)服务器如何提供客户端会话请求。
当某些服务器端脚本尝试读取或写入HttpContext.Session
对象时,将会话cookie发送到客户端。这个cookie会在每个后续请求中发送到服务器。该cookie只是一个允许访问存储在服务器上的会话数据的标识。默认情况下会话数据存储在内存中。但是,您也可以配置ASP.NET以将其存储在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。
感谢您的纠正Darin – Prashant
哇!非常好的解释....... – Niventh