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