.Net Core ile WCF soap web servisine bağlanmak

By | December 6, 2018

Buraya çok basit bir çözüm ekleyeceğim, benim gibi .net core ile wcf web servisinine bağlanmaya (consume etmeye) çalışanlar olursa diye; iki farklı şekilde Authorization ekleyebilirsiniz;

1- Servisin wsdl dokümanına ulaştınız ve visual studio için geliştirilmiş olan wcf web service reference provider kullanarak servisi consume ettiniz, fakat http request içerisine authorization ekleyemiyorsanız;

using (new OperationContextScope(WsClient.InnerChannel))
{
if(OperationContext.Current != null)
{
var httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = {BURAYA STRING TOKEN DEĞERİ GELECEK};
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
}

// BURADAN ÇAĞRINIZI YAPABİLİRSİNİZ

}

 

2. Servisin wsdl dokümanı mevcut değil, soap mesajlarını kendiniz oluşturdunuz fakat http request içerisine authorization token ekleyemiyorsanız;

WebRequest webRequest = WebRequest.Create(“{{ BURAYA SERVİS ADRESİ YAZILACAK }}”);

HttpWebRequest httpRequest = (HttpWebRequest)webRequest;
httpRequest.Method = “POST”;
httpRequest.Headers.Add(“content-type”, “text/xml”);
httpRequest.Headers.Add(“user-agent”, “Hesap Co”);
httpRequest.Headers.Add(“Authorization”, string.Format(“Basic {0}”, Convert.ToBase64String(Encoding.ASCII.GetBytes(Auth.RoleName + “:” + Auth.RolePass))));

 

Umarım yardımcı olabilmişimdir,

Sorun çözülürse bir teşekkür yazmanız yeterli.

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *