Vor kurzem hatte ich ein kleines Proof of Concept App zu erstellen, die eine Seife Web-Service-Anrufe, die sich ein bisschen sicherer sein muss als nur erlaubt den anonymen Zugriff. Der Web-Service erfordert Windows-Authentifizierung aktiviert ist (als Hauptanbieter NTLM) werden mit Anonymous deaktiviert. Dieser Web-Service aufrufen sollte einfach sein, wie Sie Windows (Forms) Desktop-Anwendung erwarten würde keine Anmeldedaten zu übergeben, wenn netzwerkbezogenen Anrufe. Leider mit Webdiensten scheint der Ruf 'Anonymous' standardmäßig mit der generierten Proxy-Klasse vorgenommen werden, wie von Visual Studio erstellt. Zum Glück ist die Lösung gerade nach vorne, sofern Sie es auf Google finden kann (oder jede andere Suchmaschine 😉) Ohne auf die wirklichen Details, wie und warum diese Arbeit hier ist die Lösung: Sie müssen die Sicherheit Details zur "Bindungskonfiguration hinzufügen 'des Endpunkts des Web-Referenz. Kurz gesagt muss die Konfiguration wie folgt aussehen: <System.serviceModel> <Bindungen><Basichttpbinding> <Binding name = "SomeServiceSoap"> <Strong> <security mode = "TransportCredentialOnly"> <Transport ClientCredentialType = "NTLM" proxyCredentialType = "None" realm = "" /> <Message ClientCredentialType = "username" algorithmSuite = "Default" /> </ Security> </ strong> </ Binding> </ Basichttpbinding> </ Bindings> <Client> <Endpunktadresse = " Bindung = "Basichttpbinding" bindingConfiguration = "SomeServiceSoap" Vertrag = "SomeServiceWS.SomeServiceSoap" name = "SomeServiceSoap" /> </ Client> </system.serviceModel> Der wichtige Teil ist hier die <Sicherheit> -Tag und dessen Inhalt. Wie schon auf der Serverseite erklärt Only 'Windows-Authentifizierung "muss mit dem" NTLM "Anbieter als erster Anbieter aktiviert werden. Möglicherweise kann dies auch durch den Code getan werden, aber ich habe nicht versucht, das noch.