webrequest请求页面时,所用的cookies必须手动指定!也就是说,你的代码实际上没有发送任何的cookies。

解决方案 »

  1.   

    to zzultc:
       那么我这种方法检查用户是否登录是不可行的?
        如果我知道cookies的,就没必要再指定cookies去请求checkuser.asp了。
        您有什么好的建议?
      

  2.   

    这个原因主要是因为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。
      

  3.   

    你出现的问题主要原因:
    1、从一个域向另外一个域访问时,cookies和Headers是不发送的。
    2、aa.aspx请求checkuser.asp时,必须手动添加cookies的值(如果是在同一个网站下,这个cookies的值,你可以从客户那里得到,在访问checkuser.asp之前,必须添加到 WebRequest头里边去)。所以说,只要你把这两个页面放在同一个域中,也是可以判断的。
    但是不同的域,根本无法判断。