Temel erişim kimlik doğrulaması kullanan bir WCF SOAP servisine sahibim. SSL kullanılmıyor - Burada güvenlik sorunlarını anlıyorum.Temel Referans ile Hizmet Referansı Nasıl Kullanılır WCF SOAP Servisi
WCFTestClient uygulamasını kullanma Servisin, Authorization
başlığı bulunmadığında kullanılacak kullanıcı adı ve parolayı geçici olarak kodlayarak hizmetlerin çalıştığını doğruladım.
Şimdi kimlik bilgilerini Authorization
üstbilgisini kullanarak geçen bir sınama uygulaması yazmaya çalışıyorum. Test uygulamamda hizmetime bir hizmet referansı ekledim, ancak Authorization
başlığı http isteğinde mevcut değil. oluşturulan MyServiceClient
sınıf aşağıdaki gibi ben de denedim
MyServiceClient client = new MyServiceClient("BasicHttpBinding_MyService");
client.ClientCredentials.UserName.UserName = "WebServiceUsername";
client.ClientCredentials.UserName.Password = "WebServicepassword";
şöyle ı kimlik kuruyorum benim test uygulamasında System.ServiceModel.ClientBase
kullanır
MyServiceClient client = new MyServiceClient();
ClientCredentials loginCredentials = new ClientCredentials();
loginCredentials.UserName.UserName = "WebServiceUsername";
loginCredentials.UserName.Password = "WebServicepassword";
client.Endpoint.Behaviors.Remove(client.Endpoint.Behaviors.Find<ClientCredentials>());
client.Endpoint.Behaviors.Add(loginCredentials);
şöyle hizmet web.config olduğunu
<services>
<service name="MyService" behaviorConfiguration="MyBehavior" >
<endpoint contract="MyService" binding="basicHttpBinding" />
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
</service>
</services>
Test app.config dosyası ws
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_MyService">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:55314/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MyService"
contract="MyService" name="BasicHttpBinding_MyService" />
</client>
</system.serviceModel>
</configuration>
Eksik olduğum hakkında herhangi bir düşünce var mı?
Gönderilmesi gereken örnek xml'yi gösterebilir misiniz? –
Temel kimlik doğrulamayı kullandığımdan nasıl yardımcı olabileceğinden emin değilim. WCF, tüm serileştirmeyi XML'e gönderir ve ben asla üretmem. Ti'nin yardımcı olabileceğini düşünüyorsanız, WireShark'tan bir çöplük alıp deneyebilirim. –
Hizmetiniz ya da başka birinin servisine SOAP göndermeye mi çalışıyorsunuz? –