アプリケーションに外部 Web サイトでログイン アクションを実行させようとしています。次のコードを使用します。
Dim enc As Encoding = Encoding.UTF8
Dim Data As Byte() = Nothing
Dim req As HttpWebRequest
req = CType(Net.WebRequest.Create(URL), Net.HttpWebRequest)
req.Method = method
req.CookieContainer = CookieJar
req.AllowAutoRedirect = False
If method = "POST" Then
req.ContentType = "application/x-www-form-urlencoded"
Data = enc.GetBytes(PostData)
If Data.Length > 0 Then
req.ContentLength = Data.Length
Dim newStream As Stream = req.GetRequestStream()
newStream.Write(Data, 0, Data.Length)
newStream.Flush()
newStream.Close()
End If
End If
Dim Response As Net.HttpWebResponse = CType(req.GetResponse(), Net.HttpWebResponse)
Dim ResponseStream As IO.StreamReader = New IO.StreamReader(Response.GetResponseStream(), enc)
Dim Html As String = ResponseStream.ReadToEnd()
Response.Close()
ResponseStream.Close()
Return Html
機能するもの:
- 応答には、適切な「Set-Cookie」ヘッダーがすべて含まれています
- コンテナーはすべての適切な Cookie を保存します (合計 5 つ)
機能しないもの:
- すべての Cookie がコンテナーによって正しく取得されています。ただし、次のリクエストですべての Cookie が送信されるわけではありません。4 つの Cookie が正しく設定されていますが、最も重要な Cookie が送信されていません。
送信されない Cookie は次のとおりです。
Set-Cookie: mpSecurity="ODc2NzM2ODoxMzUODViNTg5OWM1NTNlOWMwYmMxYjUxNWZjYzJjOGQyZGU4MTc2M2M=";Version=1;Path=/;Domain=.xxxxx.nl;Discard
この Cookie と正しく送信された Cookie の唯一の違いは、この Cookie には "Version=1" と "Discard" が含まれていることです...
上記のものを除いて、取得されたすべての Cookie が送信される理由を知っている人はいますか?
どんな助けでも大歓迎です!