ASP.NET 通用处理程序和会议
我对 GenericHandler 和 anonymousIdentification 有疑问。
基本上,如果在 Web 配置中打开
,每当 JQuery GET/POST 请求发送到服务器时,该请求都会在新用户和新用户会话。
有没有办法缓解这种情况?我需要访问当前用户的会话变量...这真是令人沮丧!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
通用处理程序必须实现
IReadOnlySessionState
访问会话变量的接口。如果您还需要编写会话变量,请实施IRequiresSessionState
。Generic handlers must implement the
IReadOnlySessionState
interface to access session variables. If you also need to write session variables, implementIRequiresSessionState
.实现 System.Web.SessionState.IRequiresSessionState 接口:
Implement the
System.Web.SessionState.IRequiresSessionState
interface:你可以使用这个:
You can use this:
我建议您在网络浏览器中在开发者模式下启用网络选项卡。
然后在 AJAX 中检查发送了哪个 cookie(如果有)。
如果你没有看到任何cookie,则意味着浏览器没有获得任何会话,因此你应该确保(如Josh所述)继承正确的接口并访问cookie。 (不要忘记使用 System.Web.SessionState)
为了生成 cookie,请访问会话对象的 sessionID:
在向响应写入任何内容之前。
I suggest in the web browser you enable the network tab in the developer mode.
Then check in the AJAX which cookie is sent (if any).
If you do not see any cookie, it means the browser did not get any session, thus you should make sure (as stated by Josh) to inherit the right interface and access the cookie. (Don'f forget to use System.Web.SessionState)
In order to generate the cookie, access the session object's sessionID:
Before you write anything to the response.