这是一个场景,我正在尝试为我的家人实现winforms
申请。
他需要访问(色情)网站发布某种宣传并在他保持联系时获得某种积分,他说这种网站最好这样做,好吧,我是没有人质疑,我只是做他需要的。
嗯,我不太了解网络,但网站基于框架,这是我登录的方式:
private sub log_in()
' Firstly, navigate to the main page. (Ex: www.website.com)
WebBrowser1.Navigate(url)
' Secondly, navigate to the login page .
' (seems that If I directly navigate to this page I can't log in,
' so first of all I need to navigate to the main page)
WebBrowser1.Navigate(url & "/main/login.php")
' Put username/password on the textboxes.
WebBrowser1.Document.GetElementById("id_username").InnerText = user.ToString()
WebBrowser1.Document.GetElementById("id_password").InnerText = pass.ToString()
' click the button to submit login.
WebBrowser1.Document.DomDocument.forms(0).submit()
' At this point I'm looged in.
End sub
当用户连接时,他获得了一些点数(不要问我怎么样,我不知道),问题是当会话结束时(我的意思是,当我从网站注销到重新登录到网站),所有点都丢失了,但是当用户直接从导航器登录时不会发生这种情况,这只有在用户从我的应用程序登录时才会发生。
这是我退出的方式:
Private Sub log_out()
' Simple as this, just I acces to the logout frame
WebBrowser1.Navigate(url & "/00000000000000000000000000000000/main/logout/")
End Sub
然后我需要一个解决方案来在注销后保持这些用户会话点,我不知道问题是我需要管理cookie还是我需要做什么,因为就像我说过我不对网络了解太多了。
PS:如果我需要给网址告诉我,我不知道提供色情网址是否违反了SO规则。答案 0 :(得分:2)
您可以按照以下步骤排除Cookie:
1)通过浏览器手动登录网站
2)积累一些积分
3)退出
4)重新登录以确认您在上一个会话中的积分仍然存在
5)再次注销,这次清除所有浏览器历史记录/ cookies / temp文件
6)最后重新登录
如果积分消失,则基于cookie。如果这些点仍然存在,它们很可能跟踪服务器端,这表明除了简单登录之外还有另一个积累点的触发器(即整个站点的导航)。
答案 1 :(得分:2)
虽然URL会有所帮助,但我有一些想法/假设可能有助于回答您的问题。
假设您获得的积分不会给您徽章,但更有形的东西(例如现金),则不太可能通过cookie设置积分。这是很容易调整cookie,并使用那个maipulate / cheat点系统。 如果这个假设是错误的,您可以使用Firebug / firecookie或Chromes webdev工具(在资源下,它说cookie)来检查cookie。
但是,你确定你获得积分吗?可能是你的winforms程序没有做到获得这些点所需的东西,因此当你登出登录时,没有积分,因为你从未获得它们。
由于在注销时将点存储到服务器或在用户端完全存储这些点是不常见的,我认为我们可以排除任何登录/注销和用户端问题。
可能会发生的事情是,您通过在网站上获取积分来获得积分,该网站由积分系统加载到框架中。
在这种情况下,可能是使用WebBrowser1.Navigate(url)
前往网站是不够的,因为它不会加载"积分系统的框架",或者不是正确的网站内部框架。
无论如何,这里有很多开放的目标。关于积分系统/网站的更多信息(因此URL会派上用场)可以让我们解决您的问题。
==快速编辑==
该网站使用PHP会话。会话ID存储在cookie中。 如果你抓住并保留那个饼干怎么办?这有什么影响吗?