Как установить токен безопасности в WCF?

Я обновляю приложение с .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" />
7
задан Paul Fryer 9 November 2010 в 18:59
поделиться