请教webrequest 问题,问题明细见内容

问题描述

大家好:请教个使用webrequest的问题。问题背景:有两个网站需要互相共用cookie,一个是asp做的(例如www.site.asp),另外一个是aspx(例如www.site.aspx)。用户在www.site.asp上登录后,用户信息保存在cookies("username"}中。当用户访问www.site.aspx时,需要检查用户是否已经登录到www.site.asp.实现原理:1.在www.site.asp上有个checkuser.asp,代码如下:<%'checkuser.asp'检查cookiedimunun=Request.Cookies("username")dimunlenunlen=len(un)Response.Write(un)ifunlen=0thenResponse.AddHeader"loginstatus","notok"elseResponse.AddHeader"loginstatus","ok"endif%>2.当用户访问www.site.aspx上的"aa.aspx"时,在"aa.aspx"中用webrequest请求"checkuser.asp",从而获取到headers中的“loginstatus”的值。aa.aspx代码如下:<%//aa.aspx代码,写在aspx页面中stringurl="http://www.site.asp/checkuser.asp";WebRequestwrequest=System.Net.WebRequest.Create(url);wrequest.Timeout=30000;System.Net.HttpWebResponsewresponse=(System.Net.HttpWebResponse)wrequest.GetResponse();stringrslt="";if(wresponse.StatusCode==System.Net.HttpStatusCode.OK)rslt=wresponse.Headers["loginstatus"];wresponse.Close();Response.Write(rslt);Response.End();%>产生的问题:当用户已经登录www.site.asp后,单独访问http://www.site.asp/checkuser.asp时,总是能正确访问到username的值。当用户从www.site.asp转到http://www.site.aspx/aa.aspx时,需要检查用户是否在www.site.asp中登录(检查方法看aa.aspx的代码),结果总是"notok",问题就是为什么用webrequest请求"checkuser.asp"时,不能正确获取到cookie?(注:做过测试,当在同一个网站下,都用aspx来做时,也是同样的效果)谢谢!

解决方案

解决方案二:
webrequest请求页面时,所用的cookies必须手动指定!也就是说,你的代码实际上没有发送任何的cookies。
解决方案三:
tozzultc:那么我这种方法检查用户是否登录是不可行的?如果我知道cookies的,就没必要再指定cookies去请求checkuser.asp了。您有什么好的建议?
解决方案四:
这个原因主要是因为cookies不能垮域使用,只有在同一域下时,浏览器才会发送cookies。你上面的那个例子aa.aspx中,对http://www.site.asp/checkuser.asp的访问是在服务器端进行的,这时候的cookies你只能在服务器运行webrequest的那段代码时才能得到。而对用户而言,第一次访问www.site.asp,得到www.site.asp发给的cookies,但是访问http://www.site.aspx/时,客户根本不把www.site.asp得到的cookies发给www.site.aspx,所以,你的aa.aspx也就接收不到cookies。当你把这两者放在同一域下,客户就会发送cookies,而不管你是asp或者aspx,甚至是jsp照样能得到cookies。
解决方案五:
你出现的问题主要原因:1、从一个域向另外一个域访问时,cookies和Headers是不发送的。2、aa.aspx请求checkuser.asp时,必须手动添加cookies的值(如果是在同一个网站下,这个cookies的值,你可以从客户那里得到,在访问checkuser.asp之前,必须添加到WebRequest头里边去)。所以说,只要你把这两个页面放在同一个域中,也是可以判断的。但是不同的域,根本无法判断。

时间: 2024-10-22 10:01:06

请教webrequest 问题,问题明细见内容的相关文章

路由器-如何ping通不同网段的pc机(详情见内容)

问题描述 如何ping通不同网段的pc机(详情见内容) 如图所示,其中Router1和Router2均添加了一个WIC-1T模块,因此均拥有一个串口,各项配置如下: 路由器Router1的串口配置IP:202.1.1.1 255.255.255.0: 路由器Router2的以太网口配置IP: 192.168.4.254 255.255.255.0,串口配置IP: 202.1.1.2 255.255.255.0 ① PC0: IP地址:192.168.1.1 子网掩码:255.255.255.0

java-【求助】怎么用Java读txt文件,根据其中的条件,输出一个csv文件?(具体情况见内容)

问题描述 [求助]怎么用Java读txt文件,根据其中的条件,输出一个csv文件?(具体情况见内容) 用Java, 读txt文件(根据Eclipse软件的下方的console改成的log.txt) -------------------------------------- 例: [2013-08-26 10:45:45,042] ERROR does not exist. [2013-08-26 14:43:09,145] ERROR Certification failed. [2013-0

android-关于Android发送短信的扩展问题【具体见内容】,请大神指点

问题描述 关于Android发送短信的扩展问题[具体见内容],请大神指点 是这样的,程序中发送短信功能已经实现了. 因为我发的是类似验证码的信息,要对方同意并把这个验证码回馈给我才算双方达成"协议",但是现在短信内容可以在 短信 应用中看到,就是说我可以直接拿到对方的验证码. 请问有没有方法让这条短信不显示在系统的短信应用中,或者显示出来的是加密后的文字呢?或者发完之后直接删除也行啊-- 求帮助~先谢过大家了~ 解决方案 md5或许能帮上你,这是一种哈希讲明文转换为密文的算法吧

gprs短消息模块-GPRS短消息模块无法联网,打不进电话,发不出短信,详情见内容

问题描述 GPRS短消息模块无法联网,打不进电话,发不出短信,详情见内容 **现有一GPRS短消息模块无法联网,打不进电话,发不出短信(偶尔能通,过一会儿就不行了). 该模块为成品(智能家居),采用Telit 的gprs无线通讯模块,型号GL868-DUALIMEI:357804047020783,使用环境手机城市郊区,手机偶尔无信号,信号强度一般在70-90 -dBm.手机能正常通话的情况下,该模块仍然无法正常工作,后加装了信号放大器,信号强度一般在50-60 -dBm(室内天线紧挨该模块)仍

js jquery-JS中如何将字符串&amp;amp;quot;Begin&amp;amp;quot;转化为Begin对象??详细见内容....(在线急等)

问题描述 JS中如何将字符串"Begin"转化为Begin对象??详细见内容....(在线急等) drawingTool.setTool(new Begin()); //这个是要的答案 function drawOtherEle(legendType,msgitem) { var type = legendType.split('_')[0];//这个type就是"Begin",如何将它转化为对象,然后让下一行代码正常执行 drawingTool.setTool(n

数据库-求助:sql实现相邻行数值相加(具体条件见内容)

问题描述 求助:sql实现相邻行数值相加(具体条件见内容) A B C D 2014-6-4 下午9:22:51 2.04043E+14 3823335307 586422014-6-4 下午6:32:55 2.04043E+14 3823340176 586432014-6-4 上午11:09:16 2.04043E+14 3823312825 586422014-6-4 上午11:10:14 2.04043E+14 3823363028 586422014-6-4 下午3:58:29 2.0

字符串-java中String str1…的区别,详细见内容

问题描述 java中String str1-的区别,详细见内容 String str1,str2; str1 = "we are friends"; str2 = "we are friends"; 和 String str1 = "we are friends"; String str2 = "we are friends"; 在内存上的区别是什么? 是否有区别? 解决方案 没有区别,他们指向同一个对象 解决方案二: 就最后

高手~前辈救命啊,,,,,,我这里出现索引出错~~~也就是没有取到&amp;amp;quot;file&amp;amp;quot;=&amp;amp;gt;&amp;amp;gt;post 图片文件流到asp.net一个页面...怎么在这个页面取到正确的图片二进制流并还原......代码见内容!!!!!

问题描述 这是客户端代码vb.netPublicFunctionpostCaptcha(ByValstrApiKeyAsString,ByValstrCaptchaFileAsString)AsStringDimobjEncodingAsNewSystem.Text.UTF8EncodingDimobjStreamWriterAsSystem.IO.StreamWriterDimobjStreamAsSystem.IO.StreamDimobjHTTPRequestAsHttpWebReques

找个SEO高手,请教下百度不收录我内容页面,只收录导航页面

问题描述 真心求解!!!感谢大神!!屌丝跪拜了.