请教c#如何实现对网站的多用户同时登录? 当然可以,注意独立保持cookie就可以了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 所谓登录,就是第一次访问,服务器返回一个set-cookie指令(不保存到cookie存储中),客户端浏览器在之后的访问中加上它,而服务器把所有这个set-cookie返回的cookie(很多web server将它命名为sessionid一类),识别为同一系列的请求,也就是一个会话,而服务器通过跟踪会话,当用户登录成功,将它存入会话中,判断出后续的操作是“已经登录的”。如果你把这个原理搞清楚了,就知道怎么做了。 谢谢,我现在学习使用异步操作,但遇到一个问题,还请指点 string user = "123", pwd = "123"; HttpWebRequest request = (HttpWebRequest)ar.AsyncState; Stream postStream = request.EndGetRequestStream(ar); string postdata = "User=" + user + "&Pass=" + pwd + "&Button=Login"; byte[] byteArray = Encoding.UTF8.GetBytes(postdata); postStream.Write(byteArray, 0, postdata.Length); postStream.Close(); request.BeginGetResponse(new AsyncCallback(GetResponseCallbackCookie), request);这段代码中,我提交post数据进行登录,我的意思是登录成功后我就保存相应的cookie。我新建了一个字典dic<string username,string cookieheader>...用这个字典来保存15个账户的cookie,以便获取信息时提交。但上面代码中,我虽然给post数据填写了账户以及密码,但是我怎么才能把这个user账户名传值到GetResponseCallbackCookie函数中, void GetResponseCallbackCookie(IAsyncResult asynchronousResult) { HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; string asd= asynchronousResult.ToString(); string asdasd = request.Credentials.ToString(); // End the operation HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult); Stream streamResponse = response.GetResponseStream(); StreamReader streamRead = new StreamReader(streamResponse); string responseString = streamRead.ReadToEnd(); //此时这里根据返回的字符串确认登录成功,我想保存cookie信息 string CookieHeader = request.CookieContainer.GetCookieHeader(request.RequestUri); Dic.add(user,CookieHeader);我希望在这里获取前面post的user,写入字典 streamResponse.Close(); streamRead.Close(); response.Close(); allDone.Set(); }请问有什么办法可以在上面那里获取user的值吗,谢谢!! 一个既然ok了,开15个线程不就ok了,不行你启动15次你现在的软件也能完成 谢谢各位,我学习了下cookie,每次登录后把cookie保存下来(string CookieHeader = request.CookieContainer.GetCookieHeader(request.RequestUri);)就ok了。等每次获取数据时带上CookieHeader 就可以了。 解决方法写成博客了,欢迎指点http://blog.csdn.net/wwwww112233/article/details/8562545 把拿到的cookie放到浏览里并打开怎么做呢?用InternetSetCookie 这个API好像不行呢 学习啦~!--- 跟人签名 ----------------高价收药、收药、北京收药:http://www.woshouyao.com/index.php C#的WinForm皮肤如何调用指定的系统主题 拖动改变窗口大小闪烁很厉害,能否解决 用vs2005制作中国象棋的思路 用C# Console程序访问Web站点时,如何设置Session信息? 关于物流软件单据套打 我想往一个文件里用几个线程同时写入数据该怎么做? 我想创建新的应用程序,怎么没有目录的写权限???? 求助!如何获得farpoint.win.spread 表单筛选后的数值 C# 存取嵌套类的问题 js调用后台方法 求一个windows脚本 关于二进制编码问题。
谢谢,我现在学习使用异步操作,但遇到一个问题,还请指点
string user = "123", pwd = "123";
HttpWebRequest request = (HttpWebRequest)ar.AsyncState;
Stream postStream = request.EndGetRequestStream(ar);
string postdata = "User=" + user + "&Pass=" + pwd + "&Button=Login";
byte[] byteArray = Encoding.UTF8.GetBytes(postdata);
postStream.Write(byteArray, 0, postdata.Length);
postStream.Close();
request.BeginGetResponse(new AsyncCallback(GetResponseCallbackCookie), request);这段代码中,我提交post数据进行登录,我的意思是登录成功后我就保存相应的cookie。我新建了一个字典dic<string username,string cookieheader>...用这个字典来保存15个账户的cookie,以便获取信息时提交。
但上面代码中,我虽然给post数据填写了账户以及密码,但是我怎么才能把这个user账户名传值到GetResponseCallbackCookie函数中, void GetResponseCallbackCookie(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
string asd= asynchronousResult.ToString();
string asdasd = request.Credentials.ToString();
// End the operation
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
string responseString = streamRead.ReadToEnd();
//此时这里根据返回的字符串确认登录成功,我想保存cookie信息
string CookieHeader = request.CookieContainer.GetCookieHeader(request.RequestUri);
Dic.add(user,CookieHeader);我希望在这里获取前面post的user,写入字典 streamResponse.Close();
streamRead.Close(); response.Close();
allDone.Set();
}请问有什么办法可以在上面那里获取user的值吗,谢谢!!
http://blog.csdn.net/wwwww112233/article/details/8562545
把拿到的cookie放到浏览里并打开怎么做呢?用InternetSetCookie 这个API好像不行呢
高价收药、收药、北京收药:
http://www.woshouyao.com/index.php