Guybrush Threepwood Geschrieben 18. Januar 2013 Geschrieben 18. Januar 2013 Ich hab einen WCF Service der ein netTcpBinding mit Message security verwenden soll und eine eigene Benutzername/Kennwort authentifizierung ermöglichen soll. Nachdem ich mich durch die verschiedensten Fehlermeldungen durchgehangelt hab bekomme ich jetzt nur noch folgenden Fehler An unsecured or incorrectly secured fault was received from the other party. See the inner FaultException for the fault code and detail. Inner Exception: An error occurred when verifying security for the message. Leider hab ich durch googlen noch nichts hilfreiches dazu gefunden und bin ziemlich ratlos. Kann da jemand was zu sagen? Hier mal die app.config vom Server und Client Server <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <compilation debug="true" /> </system.web> <!-- Bei der Bereitstellung des Dienstbibliothekprojekts muss der Inhalt der Konfigurationsdatei der app.config-Datei des Hosts hinzugefügt werden. System.Configuration unterstützt keine Konfigurationsdateien für Bibliotheken. --> <system.serviceModel> <services> <service behaviorConfiguration="tcpBehavior" name="PAService.MyService"> <endpoint address="" binding="netTcpBinding" bindingConfiguration="Binding1" contract="PAService.IMyService"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange" /> <host> <baseAddresses> <add baseAddress="net.tcp://localhost:36001/MyService" /> </baseAddresses> </host> </service> </services> <bindings> <netTcpBinding> <binding name="Binding1"> <security mode="Message"> <message clientCredentialType="UserName"/> </security> </binding> </netTcpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="tcpBehavior"> <serviceMetadata httpGetEnabled="false" /> <serviceDebug includeExceptionDetailInFaults="false" /> <serviceCredentials> <!-- The serviceCredentials behavior allows one to specify a custom validator for username/password combinations. --> <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="PAService.PAUserValidator, PAService"/> <!-- The serviceCredentials behavior allows one to define a service certificate. A service certificate is used by a client to authenticate the service and provide message protection. This configuration references the "localhost" certificate installed during the setup instructions. --> <serviceCertificate findValue="localhost" storeLocation="CurrentUser" storeName="My" x509FindType="FindBySubjectName"/> <clientCertificate> <certificate findValue="localhost" storeLocation="CurrentUser" storeName="My" x509FindType="FindBySubjectName"/> </clientCertificate> </serviceCredentials> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> </configuration> [/PHP] Client: [PHP]<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <bindings> <netTcpBinding> <binding name="NetTcpBinding_IMyServiceService"> <security mode="Message"> <message clientCredentialType="UserName"/> </security> </binding> </netTcpBinding> </bindings> <client> <endpoint address="net.tcp://localhost:36001/MyService" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IMy" contract="MyService.IMyService" name="NetTcpBinding_IMyService"> <identity> <dns value="localhost" /> </identity> </endpoint> </client> </system.serviceModel> </configuration> Zitieren
Guybrush Threepwood Geschrieben 21. Januar 2013 Autor Geschrieben 21. Januar 2013 So Problem gelöst. Die oben genannte Exception ist nur eine Sammelfehlermeldung welche bei allen möglichen Problemen bei der Security geworfen wird. Mit diesem Eintrag im Service Behavior <serviceSecurityAudit auditLogLocation="Application" serviceAuthorizationAuditLevel="Failure" messageAuthenticationAuditLevel="Failure" suppressAuditFailure="true" /> bekommt man eine genaure Exception im Ereignisprotokoll. Die hat mich allerdings auch nicht weiter gebracht. Erst als ich auf die Idee gekommen bin das Passwort im Client mal zu setzten hab ich gemerkt das es dann funktioniert. Setzte ich ein falsches Passwort bekomme ich die Exception die ich im UserNamePasswordValidator schmeiße. Lasse ich das Passwort auf Null bekomme ich wieder diese nichtssagende Exception von oben Ich hatte das Passwort ursprünglich weggelassen um zu sehen ob er auch wirklich Username/Passwort validiert... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.