可能是一个非常愚蠢的问题,你觉得在愚蠢的日子问。asp.net会话状态从非浏览器请求
用户通过浏览器访问ASP.net应用程序中的网页。会话状态(和ID)在服务器上建立(在proc,db whatever中)。很基本。
现在,如果请求源自非浏览器应用程序,例如执行帖子并检索响应的控制台应用程序,是否会发生这种情况?
可以说我有一个会话变量设置在母版页中。任何页面访问都将导致设置此会话变量。如果以编程方式发布请求以获取页面响应,会发生什么情况?此会话变量是否设置,或者控制台应用程序请求是否可以访问会话?
根据MSDN,我假设它只适用于浏览器请求?
ASP.NET会话状态使您能够在用户在Web应用程序中导航ASP.NET页面时为用户存储和检索值。 HTTP是一种无状态协议。这意味着Web服务器将每个HTTP请求作为独立请求处理。服务器不知道以前请求期间使用的变量值。 ASP.NET会话状态在有限的时间窗口内将来自同一浏览器的请求标识为会话,并提供一种在该会话持续时间内保存变量值的方法。默认情况下,为所有ASP.NET应用程序启用ASP.NET会话状态。
我并不是在问未来的要求。假如页面请求正在做的事情取决于从母版页设置的会话,页面是否可以访问它?或者换言之,就会话而言,编程请求的行为就像浏览器请求一样。我想你的答案表明它的确如此。 –
@codernet确实如此。 –
如果它是通过应用程序公开的WCF服务(项目的一部分),那该怎么办。考虑到它是应用程序域的一部分,它的请求是否可以访问会话? –