2010-11-08 18 views
7

Bir uygulamayı .net 1.1'den 3.5'a yükseltirim. Bu uygulama bir WCF servisine bağlanır.WCF'de Güvenlik Belirteci nasıl ayarlanır?

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); 

Şimdi web hizmeti için Visual Studio'da yeni bir hizmet başvurusu eklemiş, ancak otomatik herhangi bir şekilde sağlamaz kod oluşturulan: Daha önce web hizmeti istemcisi şöyle bir güvenlik Token kullanmak üzere yapılandırılmış Yukarıdaki gibi güvenlik üstbilgisini ayarlamak için

Bu, system.serviceModel yapılandırma dosyasında yapılandırılması gereken bir şey mi?


Güncelleme

Ben servis arayüzü değil, gerçek uygulama sınıfı ile çalışıyordu çünkü kullanıcı adı/şifre özellikleri olduğunu görmedim sebep.

böyle, türüne örneği dökülerek bunları ayarlamak başardı:

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

yapmanız gereken diğer önemli şey müşteri app.config dosyasını güncelleştirmek olduğunu. Bunu yapmazsanız kullanıcı adı/parola SOAP başlığına ayarlanmayacaktır. Örnek:

<security mode="TransportWithMessageCredential" /> 

cevap

1

this article on MSDN ürününü inceleyin. This post ayrıca sorunuzla ilgili bazı iyi bilgilere de sahiptir.

+0

Bağlantılar için teşekkürler Kamyar. Sorun, proxy sınıfı değil, servis arayüzü ile etkileşiyordu. Sadece kullanıcı adı/şifre ayarlamak için bir döküm yapmam gerekiyor - yukarıya bakın. –

+0

@Paul: Çalıştığına sevindim. Ben de yeni şeyler öğrendim. Teşekkürler. – Kamyar

İlgili konular