我制作了一些WebRequest并获得了对网站的回复,并成功发布了3页的数据。现在最后一页是确认页面,我需要让用户点击确认按钮。但是当我像这样将浏览器内容写回浏览器时
response = request.GetResponse() as HttpWebResponse;
dataStream = response.GetResponseStream();
reader = new StreamReader(dataStream);
responseFromServer = reader.ReadToEnd();
responseFromServer = responseFromServer.Replace(@"=""/", @"=""http://website.com/");
Page.Response.Write(responseFromServer);
用户单击按钮后,网页会重定向到注销页面,因为浏览器没有cookie和会话变量。我上面做的只是将html写入页面。我想,也许HttpContext.Current
或WebClient
类可能有用,但无法弄明白。
如何让浏览器继续此会话?如何将会话变量和缓存从响应传递到浏览器?
任何帮助将不胜感激..
思南
答案 0 :(得分:0)
如果我理解您的方案,那么您正在编写一个ASP.NET页面,该页面依次代表您页面的用户与其他网站进行身份验证。当这个asp.net页面收到用户的请求时,它会向后端网络服务器发送一些请求/响应。在某些时候,您希望首先获得页面用户的确认,以完成到后端服务器的交易。
所以,正在发生的事情是当确认请求进入时会话状态丢失。您应该做的是将用户与会话相关联并将后端cookie(在CookieContainer中设置)存储在用户的会话。如果只有一个服务于用户的Web服务器,您可以将其存储在静态哈希表/字典中。
希望有所帮助。答案 1 :(得分:0)
我正在向网站提出请求。当网站回复时,我试图将回复内容写入页面。我希望用户可以继续浏览该网站,但现在我意识到这是不可能的,因为安全原因。我无法为另一个域设置会话ID(会话cookie)。我试图通过javascript添加jsessionid cookie但访问被拒绝..