问题描述
呵呵,我是这方面的新手,也认真查找阅读了一些文章,但仍有一些问题需请教,请大家耐心帮助,thank.我要登录的网页地址是http://www.55188.com/logging.php?action=login我看了里面的源文件,对表单里的一些项不知道如何处理:例如:<inputtype="hidden"name="formhash"value="23399eb6"/><inputtype="hidden"name="referer"value="http://www.55188.com/forum-45-1.html"/>疑问一:这个hidden属性的表单项怎么处理呢?<label><inputclass="radio"type="radio"name="loginfield"value="username"tabindex="2"checked="checked"/>用户名</label><label><inputclass="radio"type="radio"name="loginfield"value="uid"tabindex="3"/>UID</label>疑问二:对于radio类型的项,我送入value=username,这样可以吗?<selectid="loginmode"name="loginmode"tabindex="13"><optionvalue="">-使用默认-</option><optionvalue="normal">正常模式</option><optionvalue="invisible">隐身模式</option></select>疑问三:对于option类型的项,我送入value=normal,这样可以吗?我按照例子,post了,可是取得的网页还是登录页面,好像没有登录成功,请高手赐教了,附源码如下:CookieContainercc=newCookieContainer();stringFormURL=@"http://www.55188.com/logging.php?action=login&";//处理表单的绝对URL地址stringFormData="formhash=7162cdc9&referer=index.php&loginfield=username&username=test&password=123456&questionid=0&answer=&cookietime=315360000&loginmode=normal&styleid=1";//表单需要提交的参数,注意改为你已注册的信息。byte[]data=Encoding.ASCII.GetBytes(FormData);HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(FormURL);request.Method="POST";//数据提交方式request.ContentType="application/x-www-form-urlencoded";request.ContentLength=data.Length;StreamnewStream=request.GetRequestStream();newStream.Write(data,0,data.Length);newStream.Close();request.CookieContainer=cc;HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();cc.Add(response.Cookies);Streamstream=response.GetResponseStream();stringWebContent=newStreamReader(stream,System.Text.Encoding.Default).ReadToEnd();
解决方案
解决方案二:
自动登录一般是把用户信息存放在Cookie里面,但是要加密用户名和密码,不然有危险打开网页的时候,读取用户信息,解密用判断是否正确如果不正确则显示登录网页正确的话就可以正常处理了
解决方案三:
我没说清楚,我做的是客户端实现自动登录,不是服务端。
解决方案四:
有高手能帮助解答吗?
解决方案五:
用MicrosoftFiddler看看发松的都是什么
解决方案六:
有谁能帮助吗?
解决方案七:
我也在问这个问题,吐了,没人帮我。不过,你比我强,还有部分代码。能不能把你的所有源码,贴一份给我。
解决方案八:
其实上面的代码包在一个函数里面就可以调用了,就这个功能而言已经是最小完整代码了。
解决方案九:
楼主应该把CookieContainercc=newCookieContainer();定义成全局变量,要不然你登录成功后下次请求时里面的Cookie又没有了,所以你还是没有权限的。
解决方案十:
)
解决方案十一:
谢谢楼上的。我是基本思路已经有了,现在是遇到了一些具体的困难,具体我已经列出来了,如果能帮助我,请稍微详细地指明,谢谢。
解决方案十二:
用HttpWatch之类的HTTP数据包抓取工具,来抓一下,看一下它真正提交的URL和参数,这样才是最真实的,不然。。。不然有些隐藏参数,你可能去找很久,用这个一下子就知道了
解决方案十三:
还有,有时候页面会发出302的状态码进行页面的转换,所以用编程的方式也会发生登录不了的状况
解决方案十四:
谢谢,我只是要登录http://www.55188.com网站,其他的不要,能帮我看看?
解决方案十五:
有人能具体的指导一下吗?
解决方案:楼主的问题其实就是对cookie的处理。因为http协议是无状态的,所以你每次访问网站的时候必须要带上个“令牌”,以区分你和其他用户。这个“令牌”其实就是Cookie。我们在登录某个网站后,这个网站会发给你一个“令牌”,这个“令牌”标识了你的身份,以后你带着它就可以在这个网站做很多事情了,网站就是凭这个“令牌”才信任你的。浏览器都能很好的处理“令牌”,只要你访问某个网站,浏览器首先要检查下你是否有这个网站的“令牌”,有了就要带上,以免访问遇到“麻烦”。现在你通过程序登录‘http://www.55188.com’后,网站也发给你一个“令牌”了,但是你访问下一个页面是不是被网站的“门卫”拒之门外了?...门卫说:兄弟,请拿出令牌!你说:我有令牌。门卫说:拿来我看看!你说:我不晓得放到哪儿了!门卫说:别忽悠我,我只认令牌,没有令牌一律拒之门外!说完,保安把你带到了领取令牌的地方,让你重新领取令牌。领取令牌后,你又去门卫那儿,结果又被拒之门外,如此反复.......兄弟,请注意随时带上你的“令牌”,这年头,人与人之间,谁信谁?...
解决方案:又来个说些无用的,这个道理我本不懂,可是早已经阅读资料理解了,不需要再这么通俗易懂地告诉我了。还有人能指导些具体些的人吗?
解决方案:今天上来看了一下发现这个问题还在于是动手试了一下发现果然不能成功使用多种办法试验(javaphp)还是不行于是分析发现该论坛是Discuz的他们在cookie中存储了一个值cdb_sid每次刷新都变估计就是用来防止程序自动登录的东后来查了一下听说有人破解了这个算法(祥见:)但是试验了一下还是不行郁闷领导来了先闪!不知道有哪位大哥找到了方法发上来大家共享一下谢了:)
解决方案:谢谢楼上的,我还没有解决,烦请继续提供帮助。
解决方案:没人能够提供帮助?呵呵,清谈的人倒蛮多,一说到具体问题就没人了:)
解决方案:仔细看了一下,提交串里丢了个loginsubmit=提交,中文要转码,试试看。