http://blog.yes11.cn/session.rar
上边是下载地下.我真的无语了.那个程序是模拟post的.不知道为什么一次性post没有错.但分开就不行了. seesion就没了.
第一个按钮是分开post的.每二个是一次性post的.有三个页面 sp.aspx入口default.aspx 与action是被模拟的.代码很简单.大家看看..
action.aspx
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentEncoding = System.Text.Encoding.Default;
if (Session["a"] == null)
Response.Write("session失去");
else
{
if (Request.Form["validate"] == Session["a"].ToString())
Response.Write("right");
else
{
Response.Write("wrong");
}
}
}
default.aspx<form id="form1" action="action.aspx" runat="server">
<div>
<input id="Hidden1" name="validate" value="<%=s %>" type="hidden" />
<input id="Submit1" type="submit" value="submit" />
</div>
</form>后台有一点.超简单
主要是sp.aspx的public partial class session_sp : System.Web.UI.Page
{
HttpWebRequest req;
CookieContainer ReqCookies = new CookieContainer();
string code=string.Empty;
protected void Page_Load(object sender, EventArgs e)
{ HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://localhost/session/default.aspx");
req.Accept = "*/*";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
CookieContainer ReqCookies = new CookieContainer();
req.CookieContainer = ReqCookies;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
string strHtml;
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
strHtml = sr.ReadToEnd();
}
Regex r;
MatchCollection m;
r = new Regex(@"name=""validate"" value=""(.+?)""", RegexOptions.IgnoreCase);
m = r.Matches(strHtml);
code = m[0].Groups[1].Value;
TextBox1.Text = code;
} protected void Button2_Click(object sender, EventArgs e)
{
//你要post的数据,格式可以使用sniffer得到
req = (HttpWebRequest)HttpWebRequest.Create("http://localhost/session/action.aspx");
req.Accept = "*/*";
//req.Referer = "http://localhost/session/default.aspx";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = ReqCookies;
req.Method = "POST";
string PostData = "validate=" + code;
byte[] b = Encoding.Default.GetBytes(PostData);
req.ContentLength = b.Length;
using (System.IO.Stream sw = req.GetRequestStream())
{
sw.Write(b, 0, b.Length);
}
string strHtml=string.Empty;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("gb2312")))
{
strHtml = sr.ReadToEnd();
}
Response.Write(strHtml);
}
protected void Button1_Click(object sender, EventArgs e)
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://localhost/session/default.aspx");
req.Accept = "*/*";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
CookieContainer ReqCookies = new CookieContainer();
req.CookieContainer = ReqCookies;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
string strHtml;
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
strHtml = sr.ReadToEnd();
}
Regex r;
MatchCollection m;
r = new Regex(@"name=""validate"" value=""(.+?)""", RegexOptions.IgnoreCase);
m = r.Matches(strHtml);
String myEmsbarCode = m[0].Groups[1].Value;
//你要post的数据,格式可以使用sniffer得到
req = (HttpWebRequest)HttpWebRequest.Create("http://localhost/session/action.aspx");
req.Accept = "*/*";
//req.Referer = "http://localhost/session/default.aspx";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = ReqCookies;
req.Method = "POST";
string PostData = "validate="+myEmsbarCode;
byte[] b = Encoding.Default.GetBytes(PostData);
req.ContentLength = b.Length;
using (System.IO.Stream sw = req.GetRequestStream())
{
sw.Write(b, 0, b.Length);
}
res = (HttpWebResponse)req.GetResponse();
using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("gb2312")))
{
strHtml = sr.ReadToEnd();
}
Response.Write(strHtml);
// Response.Write(req.CookieContainer.GetCookies(new Uri("http://www.baidu.com")).Count);
}
}
上边是下载地下.我真的无语了.那个程序是模拟post的.不知道为什么一次性post没有错.但分开就不行了. seesion就没了.
第一个按钮是分开post的.每二个是一次性post的.有三个页面 sp.aspx入口default.aspx 与action是被模拟的.代码很简单.大家看看..
action.aspx
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentEncoding = System.Text.Encoding.Default;
if (Session["a"] == null)
Response.Write("session失去");
else
{
if (Request.Form["validate"] == Session["a"].ToString())
Response.Write("right");
else
{
Response.Write("wrong");
}
}
}
default.aspx<form id="form1" action="action.aspx" runat="server">
<div>
<input id="Hidden1" name="validate" value="<%=s %>" type="hidden" />
<input id="Submit1" type="submit" value="submit" />
</div>
</form>后台有一点.超简单
主要是sp.aspx的public partial class session_sp : System.Web.UI.Page
{
HttpWebRequest req;
CookieContainer ReqCookies = new CookieContainer();
string code=string.Empty;
protected void Page_Load(object sender, EventArgs e)
{ HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://localhost/session/default.aspx");
req.Accept = "*/*";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
CookieContainer ReqCookies = new CookieContainer();
req.CookieContainer = ReqCookies;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
string strHtml;
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
strHtml = sr.ReadToEnd();
}
Regex r;
MatchCollection m;
r = new Regex(@"name=""validate"" value=""(.+?)""", RegexOptions.IgnoreCase);
m = r.Matches(strHtml);
code = m[0].Groups[1].Value;
TextBox1.Text = code;
} protected void Button2_Click(object sender, EventArgs e)
{
//你要post的数据,格式可以使用sniffer得到
req = (HttpWebRequest)HttpWebRequest.Create("http://localhost/session/action.aspx");
req.Accept = "*/*";
//req.Referer = "http://localhost/session/default.aspx";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = ReqCookies;
req.Method = "POST";
string PostData = "validate=" + code;
byte[] b = Encoding.Default.GetBytes(PostData);
req.ContentLength = b.Length;
using (System.IO.Stream sw = req.GetRequestStream())
{
sw.Write(b, 0, b.Length);
}
string strHtml=string.Empty;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("gb2312")))
{
strHtml = sr.ReadToEnd();
}
Response.Write(strHtml);
}
protected void Button1_Click(object sender, EventArgs e)
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://localhost/session/default.aspx");
req.Accept = "*/*";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
CookieContainer ReqCookies = new CookieContainer();
req.CookieContainer = ReqCookies;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
string strHtml;
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
strHtml = sr.ReadToEnd();
}
Regex r;
MatchCollection m;
r = new Regex(@"name=""validate"" value=""(.+?)""", RegexOptions.IgnoreCase);
m = r.Matches(strHtml);
String myEmsbarCode = m[0].Groups[1].Value;
//你要post的数据,格式可以使用sniffer得到
req = (HttpWebRequest)HttpWebRequest.Create("http://localhost/session/action.aspx");
req.Accept = "*/*";
//req.Referer = "http://localhost/session/default.aspx";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = ReqCookies;
req.Method = "POST";
string PostData = "validate="+myEmsbarCode;
byte[] b = Encoding.Default.GetBytes(PostData);
req.ContentLength = b.Length;
using (System.IO.Stream sw = req.GetRequestStream())
{
sw.Write(b, 0, b.Length);
}
res = (HttpWebResponse)req.GetResponse();
using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("gb2312")))
{
strHtml = sr.ReadToEnd();
}
Response.Write(strHtml);
// Response.Write(req.CookieContainer.GetCookies(new Uri("http://www.baidu.com")).Count);
}
}
解决方案 »
- 这句access sql语句怎么有错
- 新做的项目怎么生成EXE文件
- 我这个触发器写的对吗?
- 在哪能找到Microsoft.Office.Interop.Word中各个类,函数的详解?
- 我想用一DataList显示学生姓名(sName),在模板列用LinkButton与sName绑定,DataKeyField为学号(sNo),当我点LinkButton时,在GridView中
- 我新手,大家来帮我啊
- vs.net的应用 在线等
- 提问大家:怎么才能关闭用javascript弹出的模态窗口呢
- (请教,急!) 如何用在ASP.NET(CS文件用C#写)中把SQL2000数据库的数据写入Acess数据库的表中
- 50分在线等待asp使用的图表控件
- 刷新后,保留表单的值
- 数据库方面的!求助!
Button2_Click 不行了.不明白.但我想得到的效果是button2的分开post的效果