2

.net Web ブラウザー コントロールを使用して、資格情報を持つプロキシを介して新しいウィンドウで URL を開きます。私はそのためにこのコードを使用します:

Public Function AppendHeader(ByRef OriginalHeader As String, ByVal Addition As String) As Boolean
    If OriginalHeader <> "" Then
        OriginalHeader = OriginalHeader + vbNewLine
    End If
    OriginalHeader = OriginalHeader + Addition
    OriginalHeader.Trim(vbNewLine.ToCharArray)
End Function

Public Function Base64Enc(ByRef s As String) As String
    Base64Enc = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(s))
End Function

Public Sub Navigate()
    Dim webBrowser As WebBrowser = New WebBrowser()
    Dim headers As String = ""
    AppendHeader(headers, "Proxy-Authorization: Basic " & Base64Enc("user:pass"))
    'AppendHeader(headers, "Authorization: Basic " & Base64Enc("user:pass"))
    webBrowser.Navigate("http://stackoverflow.com", Guid.NewGuid().ToString(), Nothing, headers)
End Sub

このコードは、最初は Windows セキュリティ ウィンドウを非表示にするのに役立ちますが、Web ページを読み込んで他の URL に要求が送信されると、このウィンドウが何度も表示されます (下のスクリーンショットで確認できます)。

スクリーンショット

では、この問題を解決するにはどうすればよいでしょうか。(私はwinformsとvb.netを使用していますが、C#も適しています)

4

1 に答える 1