我在asp.net和vb.net编程中遇到了问题。我创建了一个连接到数据库的网站来验证用户。我创建了另一个页面,我的Windows窗体应用程序使用它来验证用户,因此程序不必直接连接到MySql数据库,因为这是不安全的。
到目前为止,我的asp.net页面的代码是:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
If Request.QueryString.Keys(0) = "key" And Request.QueryString.Keys(1) = "getapikeyv1" And Request.QueryString.Keys(2) = "authapienc2" Then
Dim key As String = Request.QueryString.Get("key")
If key = "dua9r3rqpK{WPDWp9r93af03r8yqrEPIF{A}W~DW)D08q3raewdawdug9q8wdyaw9wq" Then
returnLabel.Text = "XYeJay4XVh6amvf1kJ34Y6y6hR0sSokP9oJFsi0Mxl4QB0T86W0iac9o2nRfCmFmsONq6sPz+rdX+/NqFk3inHRGnwnqf0IsQXE/M/SvnvY="
Else
returnLabel.Text = "invk"
End If
Else
returnLabel.Text = "invalidrequest"
End If
End If
End Sub
' returnLabel'的默认值是INVALIDREQUEST。我上面定义的api键工作正常,所以不需要在这里考虑。但是,当我使用以下代码与网页进行通信时,它总是返回returnLabel的值为' INVALIDREQUEST'。即使我把returnLabel.Text =" 1233"在Me.Load子的开头,当我通过我的程序与它通信时,页面仍然返回INVALIDREQUEST!
我使用此代码请求:
Try
Dim APIRequest As New WebClient
APIRequest.QueryString.Add("key", r9j0wqfha0fh0wf0.DecryptString128Bit(APIKey5, dVadaihwdq93ra0w0))
APIRequest.QueryString.Add("getapikeyv1", "")
APIRequest.QueryString.Add("authapienc2", "")
Dim ako39rqwfa As String = APIRequest.DownloadString(EncryptionPageUrl)
MsgBox(ako39rqwfa)
Dim m As Match = Regex.Match(ako39rqwfa, "<span id=""returnLabel"">.*?</span>")
APIKey00 = m.Value.Replace("<span id=""returnLabel"">", "").Replace("</span>", "")
Catch ex As Exception
MsgBox(ex.ToString)
End Try
正如您所看到的,我使用的WebClient很好,但网页中的Me.Load子程序没有响应程序提出的请求...
有什么方法可以让网页响应WebClient.DownloadString()函数吗?
谢谢,
Rodit
(ps。c#或vb代码将不胜感激)
答案 0 :(得分:0)
更改您的asp.net页面以检查这样的查询字符串,不确定您是否可以假设它们按照特定顺序:
If Request.QueryString.Get("key") isnot nothing And
Request.QueryString.Get("getapikeyv1") isnot nothing And
Request.QueryString.Get("authapienc2") isnot nothing Then