来自非浏览器请求的asp.net会话状态

本文关键字:asp net 会话状态 请求 浏览器 | 更新日期: 2023-09-27 18:21:55

这可能是一个非常愚蠢的问题,你想在愚蠢的日子里问这个问题。

用户从浏览器访问ASP.net应用程序中的网页。在服务器上建立一个会话状态(和ID)(在proc中,数据库什么的)。相当基础。

现在,如果请求来自非浏览器应用程序,比如说一个发布并检索响应的控制台应用程序,会发生这种情况吗。

假设我在母版页中设置了一个会话变量。任何页面访问都将导致设置此会话变量。如果以程序方式发出请求以从页面获取响应,会发生什么?是否设置了此会话变量,或者控制台应用程序请求是否有权访问会话?

根据MSDN,我假设它只用于浏览器请求?

ASP.NET会话状态使您能够在用户浏览Web应用程序中的ASP.NET页面时存储和检索用户的值。HTTP是一种无状态协议。这意味着Web服务器将对页面的每个HTTP请求视为一个独立的请求。服务器对以前的请求中使用的变量值一无所知。ASP.NET会话状态将在有限的时间窗口内来自同一浏览器的请求标识为会话,并提供在该会话期间保持变量值的方法。默认情况下,所有ASP.NET应用程序都启用了ASP.NET会话状态。

来自非浏览器请求的asp.net会话状态

如果我理解正确,控制台应用程序将向web服务器发送HTTPPOST。如果是这种情况,那么控制台应用程序的行为就像一个web浏览器,会话就会初始化。但ASP.NET通常使用Cookie发送会话ID,因此浏览器(或控制台应用程序)必须存储该Cookie,以便在将来向同一HTTP服务器发出HTTP请求时继续会话。