Der Server hat die Client-Anmeldeinformationen WCF als Windows-Dienst abgelehnt

8

Ich kann mit der Win-form-Anwendung eine Verbindung zu meinem WCF-Dienst herstellen, kann dies jedoch nicht mit meinem Windows-Dienst tun. Immer wenn ich open () für den Proxy auslöst, wird der folgende Fehler ausgegeben:

  

Der Server hat die Anmeldeinformationen des Clients abgelehnt

     

Innere Ausnahme: System.Security.Authentication.InvalidCredentialException: Der Server   hat die Anmeldeinformationen des Clients abgelehnt.
  --- & gt; System.ComponentModel.Win32Exception: Der Anmeldeversuch ist fehlgeschlagen   --- Ende der inneren Ausnahmestapelspur ---
  bei System.Net.Security.NegoState.ProcessAuthentication (LazyAsyncResult   lazyResult)
  bei System.Net.Security.NegotiateStream.AuthenticateAsClient (NetworkCredential   Credential, ChannelBinding-Bindung, String targetName, ProtectionLevel   requiredProtectionLevel, TokenImpersonationLevel   allowedImpersonationLevel)
  bei System.Net.Security.NegotiateStream.AuthenticateAsClient (NetworkCredential   Berechtigungsnachweis, String targetName, ProtectionLevel   requiredProtectionLevel, TokenImpersonationLevel   allowedImpersonationLevel)
  at System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade (Stream   Stream, SecurityMessageProperty & amp; remoteSecurity)

Ich habe versucht, nach der Lösung zu suchen, aber keine, die meinen Anforderungen entspricht, also gepostet.

Bitte helfen Sie ...

Update 1:

@ A.R., versucht mit

%Vor%

aber ohne Erfolg.

Update 2:

WCF-Dienstkonfiguration

%Vor%     
Bravo 09.01.2012, 13:47
quelle

4 Antworten

4

Danke für Ihre Hilfe. Ich habe die Antwort nach ein paar Tagen einige Forschung und Versuch n Fehler Methode :) Nun, ich weiß, ich bin zu spät, um die Antwort zu posten, aber ich denke, es ist besser spät als nie.

Also hier ist die Lösung

Ich musste einige Änderungen in meinen Konfigurationsdateien vornehmen (sowohl Client als auch Server)

Auf der Client-Seite habe ich <security> -Tag wie unten gezeigt hinzugefügt

%Vor%

und auch das gleiche Tag auf der Serverseite (WCF-Dienstkonfiguration) hinzugefügt, wie unten gezeigt.

%Vor%

Ich hoffe, dies hilft einer Person in Not:)

Der KEY besteht also darin, das <security> -Tag über den Client und die Serverkonfigurationsdateien gleich zu machen.

    
Bravo 05.03.2012, 15:39
quelle
4

Grundsätzlich passiert es, dass Ihr aufrufender Dienst nicht über die entsprechenden Anmeldeinformationen verfügt, wie Sie dies von WinForms aus tun würden. Was Sie brauchen, ist ein Identitätswechsel. Es braucht ein wenig Aufbau und ist irgendwie nervig, aber es wird funktionieren.

Zum Glück hat MSDN einen schönen kleinen Rundgang.
Ссылка

Es gibt einige allgemeinere Informationen zum Thema hier:
Ссылка

UPDATE:
Das Festlegen von Identitätswechsel-Flags ist nicht ausreichend. Sie müssen sich tatsächlich als Berechtigungsnachweis ausgeben, damit es funktioniert. Zum Beispiel:

%Vor%     
A.R. 09.01.2012 13:52
quelle
1

Welchen Authentifizierungsmodus verwenden Sie in Ihrem WCF-Dienst? Es scheint, als ob die winform-App ausgeführt wird und die richtigen Anmeldeinformationen bereitstellt, während Ihr Windows-Dienst nicht mit den angegebenen Berechtigungen ausgeführt wird oder die übergebenen Anmeldeinformationen nicht gültig sind. Versuchen Sie, Ihre Anfrage mit Fiddler zu überprüfen, wenn Sie von Ihrem winforms vs Windwos Service gemacht werden und sehen Sie den Unterschied.

    
Rajesh 09.01.2012 14:19
quelle
1

Sehen Sie sich meine Antwort zu diesem Beitrag an Der Server wurde abgelehnt die Client-Anmeldeinformationen .

Beachten Sie den Sicherheitsknoten.

%Vor%     
spinner_den_g 13.01.2012 03:04
quelle