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

时间:2013-07-11 14:27:30

标签: c# asp.net session session-variables

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

用户从浏览器访问ASP.net应用程序中的网页。在服务器上建立会话状态(和ID)(在proc,db中)。非常基本。

现在,如果请求来自非浏览器应用程序,例如执行帖子并检索响应的控制台应用程序,是否会发生这种情况。

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

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

  

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

1 个答案:

答案 0 :(得分:2)

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