2012-03-26 20 views
1

VB.NetでPOSTリクエストを使用してcPanelにログインしようとしています。私はログイン時に正しい資格情報を持っていますが、投稿時には '301'(Tamper Data Firefox Add-Onを使用して分析)にする必要があるときに 'Unauthorized(401)'という応答が表示されます。以下は私の投稿要求情報と機能です。VB.Net 401不正なHTTP Webリクエスト

Private Function POSTreq(ByVal URL$, ByVal Data$) 
     Dim tempCookie As New CookieContainer 
     Dim DataBytes As Byte() = Encoding.ASCII.GetBytes(Data) 
     Dim Request As HttpWebRequest = TryCast(WebRequest.Create(URL), HttpWebRequest) 
     Request.Method = "POST" 
     Request.ContentType = "application/x-www-form-urlencoded" 
     Request.ContentLength = DataBytes.Length 

     Dim PostData As Stream = Request.GetRequestStream() 
     PostData.Write(DataBytes, 0, DataBytes.Length) 
     PostData.Close() 

     Dim Response As HttpWebResponse = Request.GetResponse() 
     Dim ResponseStream As Stream = Response.GetResponseStream() 
     Dim StreamReader As New StreamReader(ResponseStream) 
     Dim Text$ = StreamReader.ReadToEnd() 

     Return Text 
    End Function 

ポストのURL

http://example.com:2082/login/ 

ポストデータ

login_theme=cpanel&user=USERNAME&pass=PASSWORD&goto_uri=%2F 

答えて

2

私はあなたのコードを使って説明した動作を再現することができます。

私はCookieContainerを設定した場合、それは私の側に動作し、私がログインすることができた:

rem ... 
Request.CookieContainer = tempCookie 
Request.Method = "POST" 
rem ... and so on ... 

第二の溶液は、単に資格情報を提供するために、次のようになります。

rem ... 
Dim myFullUri = new Uri(URL) 
Dim myCredentials As New NetworkCredential(Username, Password) 
Dim myCache As New CredentialCache() 

rem Add the credentials for that specific host and 
rem for "Basic" authentication only 
myCache.Add(New Uri(myFullUri.Scheme & "://" & myFullUri.Authority), _ 
    "Basic", myCredentials) 

Request.Credentials = myCache 

Request.CookieContainer = tempCookie 
Request.Method = "POST" 
rem ... and so on ... 
関連する問題