2015-07-03 3 views
2

Я хочу иметь wsse заголовок безопасности в Wich Тип пароля имеет значение «PasswordText», как в следующем SOAP snipet:Как установить пароль типа «PasswordText» в заголовке WSSE безопасности с WCF

<wsse:UsernameToken wsu:Id="UsernameToken-2"> 
    <wsse:UsernaWme>usrnm</wsse:Username> 
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">pwd</wsse:Password> 
</wsse:UsernameToken> 

Но все, что я получаю, это простой тег пароля без атрибута Type.

<wsse:UsernameToken u:Id="UsernameToken-2"> 
    <wsse:Username>usrnm</wsse:Username> 
    <wsse:Password>pwd</wsse:Password> 
</wsse:UsernameToken> 

Каков правильный способ указать его в коде или в app.cfg? Hier мой код до сих пор:

service.ClientCredentials.UserName.UserName = "usrnm"; 
service.ClientCredentials.UserName.Password = "pwd"; 

var securityElement = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); 
securityElement.AllowInsecureTransport = true; 

var encodingElement = new TextMessageEncodingBindingElement(MessageVersion.Soap11, Encoding.UTF8); 
var transportElement = new HttpTransportBindingElement(); 

var binding = new CustomBinding(securityElement, encodingElement, transportElement); 
service.Endpoint.Binding = binding; 
+0

Проверить это http://stackoverflow.com/questions/16028014/how-can-i-pass- а-имя пользователя-пароль-в-заголовок-к-а-мыльный-ФОС-сервис – Vasanthan

ответ

0

Может быть, это поможет кому-то еще, кто находит это в поиске, как я сделал. Я решил это, изменив MessageSecurityVersion.

В app.config пользовательские привязки:

<security authenticationMode="UserNameOverTransport" 
    messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" /> 

В C#:

var securityElement = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); 
securityElement.MessageSecurityVersion = MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10;