Я обновляю приложение с .net 1.1 до 3.5.Это приложение подключается к службе WCF.Ранее клиент веб-службы был настроен на использование маркера безопасности, например:
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);
Теперь я добавил новую ссылку на службу в Visual Studio в веб-службу, но автоматически сгенерированный код не обеспечиваетлюбой способ установить заголовок безопасности, как описано выше.
Это то, что нужно настроить в файле конфигурации, system.serviceModel
раздел?
Обновление
Причина, по которой я не увидел свойства имени пользователя / пароля, заключалась в том, что я работал с интерфейсом службы, а не с классом фактической реализации.
Мне удалось установить эти вещи путем приведениянапример, экземпляр типа:
((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.UserName = userName;
((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.Password = password;
Другая важная вещь, которую вам нужно сделать, это обновить файл клиента app.config.Если вы этого не сделаете, имя пользователя и пароль не будут установлены в заголовке SOAP.Пример:
<security mode="TransportWithMessageCredential" />