Fehler bei Webzugriff über Proxy

  • VB.NET
  • .NET (FX) 4.0

    Fehler bei Webzugriff über Proxy

    Hallo,

    ich möchte über ein Webproxy einen httpwebrequest absetzen und habe dazu in die app.cfg folgendes Eingetragen:

    VB.NET-Quellcode

    1. <configuration>
    2. <system.net>
    3. <defaultProxy>
    4. <proxy
    5. usesystemdefaults="true"
    6. proxyaddress="http://192.168.1.10:3128"
    7. bypassonlocal="true"
    8. />
    9. </defaultProxy>
    10. </system.net>
    11. </configuration>

    nun erhalte ich aber folgenden Fehler:
    System.Configuration.ConfigurationErrorsException: Ungenügende Berechtigungen zum Festlegen des Konfigurationsabschnitts "defaultProxy". ---> System.Security.SecurityException: Fehler bei der Anforderung des Berechtigungstyps "System.Net.WebPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
    bei System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
    bei System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark)
    bei System.Security.CodeAccessPermission.Demand()
    bei System.Net.Configuration.DefaultProxySection.PostDeserialize()
    --- Ende der internen Ausnahmestapelüberwachung ---
    ...

    was mache ich hier falsch?

    Für Tipps bin ich dankbar!

    EDIT:

    Ich habe hier noch etwas gefunden, aber das kapiere ich nicht so ganz. Funktionieren tut es, nun fehlt mir nur noch eine Authentifizierungsmöglichkeit.

    VB.NET-Quellcode

    1. <Runtime.InteropServices.DllImport("wininet.dll", SetLastError:=True)> _
    2. Private Shared Function InternetSetOption(ByVal hInternet As IntPtr, ByVal dwOption As Integer, ByVal lpBuffer As IntPtr, ByVal lpdwBufferLength As Integer) As Boolean
    3. End Function
    4. Public Structure Struct_INTERNET_PROXY_INFO
    5. Public dwAccessType As Integer
    6. Public proxy As IntPtr
    7. Public proxyBypass As IntPtr
    8. End Structure
    9. Private Sub UseProxy(ByVal strProxy As String)
    10. Const INTERNET_OPTION_PROXY As Integer = 38
    11. Const INTERNET_OPEN_TYPE_PROXY As Integer = 3
    12. Dim struct_IPI As Struct_INTERNET_PROXY_INFO
    13. struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY
    14. struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy)
    15. struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local")
    16. Dim intptrStruct As IntPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI))
    17. Marshal.StructureToPtr(struct_IPI, intptrStruct, True)
    18. Dim iReturn As Boolean = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, System.Runtime.InteropServices.Marshal.SizeOf(struct_IPI))
    19. End Sub
    20. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    21. Label4.Text = (TextBox1.Text & ":" & TextBox2.Text)
    22. End Sub
    23. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    24. UseProxy(Label4.Text)
    25. WebBrowser1.Navigate(TextBox3.Text)
    26. End Sub
    27. End Class



    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nemesis“ ()