vb.net post登录问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb.net post登录问题相关的知识,希望对你有一定的参考价值。
同样的内容,通过WebBrowser1用post方式可以登录;但是通过HttpWebRequest总提示我输入验证码。通过抓包发现,用WebBrowser1 post数据时仅发送一次信息,通过HttpWebRequest总发送两次信息(head,body)。我已经将.ServicePoint.Expect100Continue = False。
附上代码,请帮忙看一看。
Function GetHttpStream(ByVal url As String) As Stream
requestScrape = CType(WebRequest.Create(url), HttpWebRequest)
With requestScrape
.ProtocolVersion = HttpVersion.Version11
.Accept = "text/html"
.Pipelined = True
.PreAuthenticate = True
.Method = "POST"
.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR '2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)"
.ContentType = "Content-Type: application/x-www-form-urlencoded"
.Host = ""
.ContentLength = 发送内容.Length
.CookieContainer = cc
.KeepAlive = True
.ServicePoint.Expect100Continue = False
.Timeout = 10000
.PreAuthenticate = False
.AllowWriteStreamBuffering = False
End With
'MsgBox(requestScrape.Connection)
Dim newStream As Stream = requestScrape.GetRequestStream()
newStream.Write(发送内容, 0, 发送内容.Length)
newStream.Close()
Try
responseScrape = CType(requestScrape.GetResponse(), HttpWebResponse)
Return (responseScrape.GetResponseStream())
Catch exp As Exception
Throw New Exception(exp.Message.ToString)
End Try
End Function
你post过去的验证码和你请求页面时候的验证码是不一样的
所以请检测你取验证码的方法追问
验证码是正确的,因为验证码错误返回的是“验证码错误”而不是“请输入验证码”。况且通过webbrows登录成功了。
追答把你页面的地址发出来
检测 Windows 登录屏幕是不是对 VB.NET 中的用户可见
【中文标题】检测 Windows 登录屏幕是不是对 VB.NET 中的用户可见【英文标题】:Detecting if Windows Login Screen is visible to user in VB.NET检测 Windows 登录屏幕是否对 VB.NET 中的用户可见 【发布时间】:2011-08-12 20:12:19 【问题描述】:你好 *** VB.NET 成员,
运行以下代码(锁定计算机)后,我必须应用什么代码才能查看用户是否已成功登录计算机以及我所谓的“锁定屏幕”是否消失了?
Private Declare Function LockWorkStation Lib "user32.dll" () As Long
Private Function LockComputer()
LockWorkStation()
End Function
我将调用“LockComputer”,然后我该怎么做才能查看此功能调用的锁定屏幕(例如 2 分钟后)是否消失或仍然存在向用户询问密码!
谢谢, 阿克希特·苏塔
【问题讨论】:
【参考方案1】:看看这个:http://msdn.microsoft.com/en-us/library/aa376875%28v=vs.85%29.aspx
上面写着:没有可以调用的函数来确定工作站是否被锁定。
但是:
要在用户登录时接收通知,请使用 WTSRegisterSessionNotification 函数接收 WM_WTSSESSION_CHANGE 消息。您可以使用会话通知来跟踪桌面状态,以便了解是否可以与用户交互。
【讨论】:
【参考方案2】:你在MSDN documentation of LockWorkstation API读到过这个:
没有可以调用的函数 判断工作站是否 锁定。何时收到通知 用户登录,使用 WTSRegisterSessionNotification 接收函数 WM_WTSSESSION_CHANGE 消息。
【讨论】:
以上是关于vb.net post登录问题的主要内容,如果未能解决你的问题,请参考以下文章
VB .Net to PHP - 在 Intranet 上获取用户窗口登录
请问VB.NET 怎么获取当前所有已登录到windows系统的用户名?