2010-11-08 12 views
7

Ich aktualisiere eine Anwendung von .net 1.1 zu 3.5. Diese App stellt eine Verbindung zu einem WCF-Dienst her. Zuvor wurde das Web-Service-Client konfiguriert ist, eine Sicherheits-Token zu verwenden, etwa so:So legen Sie ein Sicherheitstoken in WCF fest?

RegistrationWSWse registrationService = new RegistrationWSWse(); 
Microsoft.Web.Services2.Security.Tokens.UsernameToken token = new Microsoft.Web.Services2.Security.Tokens.UsernameToken("some username", "some password", Microsoft.Web.Services2.Security.Tokens.PasswordOption.SendPlainText); 
registrationService.RequestSoapContext.Security.MustUnderstand=false; 
registrationService.RequestSoapContext.Security.Tokens.Add(token); 

Jetzt habe ich eine neuen Service Referenz in Visual Studio auf den Web-Service hinzugefügt, aber die Auto-Code erzeugt bietet keine Möglichkeit, um den Sicherheitsheader wie oben zu setzen.

Ist dies etwas, das in der Konfigurationsdatei konfiguriert werden muss, system.serviceModel Abschnitt?


aktualisiert

Der Grund, warum ich nicht die Benutzername/Passwort-Eigenschaften nicht sehen, weil ich mit der Service-Schnittstelle arbeite, nicht die tatsächliche Umsetzung Klasse.

ich war in der Lage, diese Dinge zu setzen, indem die Instanz auf die Art, wie diese Gießen:

((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.UserName = userName; 
((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.Password = password; 

Die andere wichtige Sache, die Sie tun müssen, ist Ihre Client app.config-Datei zu aktualisieren. Wenn Sie dies nicht tun, wird der Benutzername/das Passwort nicht in den SOAP-Header gesetzt. Beispiel:

<security mode="TransportWithMessageCredential" /> 

Antwort

1

Auschecken this article on MSDN. This post hat auch einige gute Informationen zu Ihrer Frage.

+0

Danke für die Links Kamyar. Das Problem war, dass ich mit der Dienstschnittstelle und nicht mit der Proxyklasse interagierte. Ich musste nur einen Cast machen, um den Benutzernamen/das Passwort zu setzen - siehe oben. –

+0

@Paul: Ich bin froh, dass es funktioniert hat. Ich habe auch ein paar neue Sachen gelernt. Vielen Dank. – Kamyar

Verwandte Themen