using System; 
using System.Net; 
using System.IO; 
using System.Text;

// 
// TODO: 在此处添加代码以启动应用程序 
// 
string url="http://localhost/csdn2/1.asp"; 
// <% 
// if request("aa")="zhuye" then session("ok")="ok" 
// if session("ok")="ok" then 
// response.write("登录") 
// else 
// response.write("没有登录") 
// end if 
// %> 
string indata="aa=zhuye"; 
string outdata=""; 
CookieContainer myCookieContainer=new CookieContainer(); 
//新建一个CookieContainer来存放Cookie集合 
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url); 
//新建一个HttpWebRequest 
myHttpWebRequest.ContentType="application/x-www-form-urlencoded"; 
myHttpWebRequest.ContentLength=indata.Length; 
myHttpWebRequest.Method="POST"; 
myHttpWebRequest.CookieContainer=myCookieContainer; 
//设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer 
Stream myRequestStream=myHttpWebRequest.GetRequestStream(); 
StreamWriter myStreamWriter=new StreamWriter(myRequestStream,Encoding.GetEncoding("gb2312")); 
myStreamWriter.Write(indata); 
//把数据写入HttpWebRequest的Request流 
myStreamWriter.Close(); 
myRequestStream.Close(); 
//关闭打开对象 
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); 
//新建一个HttpWebResponse 
myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri); 
//获取一个包含url的Cookie集合的CookieCollection 
Stream myResponseStream=myHttpWebResponse.GetResponseStream(); 
StreamReader myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312")); 
outdata=myStreamReader.ReadToEnd(); 
//把数据从HttpWebResponse的Response流中读出 
myStreamReader.Close(); 
myResponseStream.Close(); 
Console.WriteLine(outdata); 
//显示"登录"

//拿到了Cookie,再进行请求就能直接读取到登录后的内容了 
myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url); 
myHttpWebRequest.CookieContainer=myCookieContainer;//* 
//刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证 
myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); 
myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri); 
myResponseStream=myHttpWebResponse.GetResponseStream(); 
myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312")); 
outdata=myStreamReader.ReadToEnd(); 
myStreamReader.Close(); 
myResponseStream.Close(); 
Console.WriteLine(outdata); 
//再次显示"登录" 
//如果把*行注释调,就显示"没有登录" 
}

发表于:2008-06-13 00:36:403楼 得分:30
本地已 经有的cookies 
在3.0以下平台:使用api 
[DllImport("wininet.dll", SetLastError=true)] 
public static extern bool InternetGetCookie(string url, string cookieName, StringBuilder cookieData, ref int size); 
在3.0以上平台可以使用 
System.Windows.Application.GetCookie方法。

【C#】获取本地Cookie的问题的更多相关文章

  1. taotao购物车2 解决购物车本地cookie和服务器redis不同步的问题

    下面的思路逻辑一定要理清楚,比较绕 思路; 前面已经实现了在cookie本地维护购物车的功能, 这次加入和服务器同步功能, 因为 购物车 操作比较频繁,所以,后台服务器 用redis存储用户的购物车信 ...

  2. 浅谈 php 采用curl 函数库获取网页 cookie 和 带着cookie去访问 网页的方法!!!!

    由于近段时间帮朋友开发一个能够查询正方教务系统的微信公众平台号.有所收获.这里总结下个人经验. 开讲前,先吐槽一下新浪云服务器,一个程序里的   同一个函数  在PC测试可以正常运行,在它那里就会挂的 ...

  3. js设置、获取单值cookie和多值cookie

    js设置.获取单值cookie和多值cookie,代码如下: var CookieUtil = (function () { var Cookie = function () { // 获取单值coo ...

  4. android获取本地图片并显示图片

    import java.io.FileNotFoundException; import android.content.ContentResolver; import android.content ...

  5. Linux编程获取本地IP

    #include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <netine ...

  6. Java获取本地IP地址

    import java.net.InetAddress; import java.net.UnknownHostException; public class IpTest { public stat ...

  7. 清除Cookie、获取指定Cookie的值、添加一个Cookie(24小时过期)、添加一个Cookie

    MXS&Vincene  ─╄OvЁ  &0000007 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...

  8. Android开发之获取本地视频和获取自拍视频

    1.获取本地所有视频 public void getLoadMedia() { Cursor cursor = UILApplication.instance.getApplicationContex ...

  9. 获取本地IP地址信息

    2012-06-05    /// <summary>         /// 获取本地IP地址信息         /// </summary>         void G ...

随机推荐

  1. linux 系统获取网络ip, mask, gateway, dns信息小程序

    net_util.c #define WIRED_DEV                   "eth0"     #define WIRELESS_DEV             ...

  2. MongoDB之三(高级操作 聚合、游标)

    一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. <1> count count是最简单,最容易,也是最常用的聚合工 ...

  3. SQL经典题

    1触发器的作用?    答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的.它可以强化约束,来维护数据的完整性和一致性, 可以跟踪数据库内的操作从而不允许未经许可的更新和变化.可以联级运算 ...

  4. 【CSS】Beginner6:Border

    1.border-style:solid实线,dashed虚线,double双线,dotted点状,groove凹槽,ridge垄状,inset,outset 2.border0-width:bord ...

  5. nyoj VF函数

    大意就是: 在1到在10的9次方中,找到各个位数和为固定值s的数的个数, 首先我们确定最高位的个数,为1到9: 以后的各位为0,到9: 运用递归的思想,n位数有n-1位数生成 f(n)(s) +=f( ...

  6. POJ3641-Pseudoprime numbers(快速幂取模)

    题目大意 判断一个数是否是伪素数 题解 赤果果的快速幂取模.... 代码: #include<iostream> #include<cmath> using namespace ...

  7. novnc ignoring socket not reay

  8. MySql中启用InnoDB数据引擎的方法

    1.存储引擎是什么? Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术, ...

  9. MySQL 5.7 for Windows 解压缩版 MySQL 服务无法启动

    MySQL 5.7 for Windows 解压缩版配置安装 http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html basedi ...

  10. JBPM流程实例(PI)Process Instance

    /** * 流程实例 *    *  启动流程实例 *    *  完成任务 *    *  查询 *      *  查询流程实例 *      *  查询任务 *          *  查询正在 ...