2

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

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

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

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

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

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

4

1 回答 1

2

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

于 2013-07-11T14:30:39.237 回答