使用XElement.Load时保持会话状态

问题描述

| 我的ASP.NET Web应用程序使用一个内部RSS Feed,该Feed使用当前登录用户的身份来自定义内容RSS提要由我的应用程序中的标准.ashx处理程序生成。 当我使用“ 0”调用RSS Feed时,会话状态没有得到维护(大概是因为会话ID cookie没有随请求一起发送)。 从登录用户直接从浏览器地址栏中调用时,RSS Feed可以正常工作。我已经确保我的处理程序实现了“ 1”,以便如果将会话ID传递给服务,则可以访问会话数据。 通过使用Visual Studio调试器,我确定通过XElement.Load访问提要时正在创建一个新会话。 如何加载RSS提要并确保会话状态可用?     

解决方法

        您可以执行以下步骤: 使用WebClient类以字符串形式加载RSS URL内容。在使用此WebClient类时,请设置Cookie请求标头值与具有会话ID等的当前Web请求Cookie标头相同。 从上面获得的字符串创建String Reader 使用XElement.Load(str_reader) 我希望这能解决您的问题