使用XElement.Load时维护会话状态
本文关键字:维护 会话状态 Load XElement 使用 | 更新日期: 2023-09-27 17:58:15
我的ASP.NET web应用程序使用内部RSS提要,该提要使用当前登录用户的身份来自定义其内容。RSS提要是由我的应用程序中的标准.ashx处理程序生成的。
当我使用XElement.Load(rssFeedUri)
调用RSS提要时,会话状态不会得到维护(可能是因为会话ID cookie没有随请求一起发送)。
当从浏览器地址栏直接为登录用户调用RSS提要时,RSS提要将按预期工作。我已经确保我的处理程序实现了IRequiresSessionState
,这样,如果会话ID被传递给服务,我就可以访问会话数据。
使用Visual Studio调试器,我已经确定当通过XElement.Load.访问我的提要时,正在创建一个新会话
如何加载RSS提要并确保会话状态对其可用?
您可以执行以下步骤:
- 使用WebClient类以字符串形式加载RSS URL内容。使用此WebClient类时,将Cookie请求标头值设置为与具有会话ID等的当前web请求Cookie标头相同
- 从上面得到的字符串创建字符串读取器
- 使用XElement.Load(str_reader)
我希望这将解决您的问题