C# 调用 Sap Byd Soap (用户密码/证书)

C#调用 Sap Byd Soap 接口文件 WSDL

一.Web 引用模式

1.添加服务引用

image

image

image

image

2.调用方法

static void Main(string[] args)
{
     Pii.service client =new Pii.service();
     client.Credentials = new NetworkCredential("_BYDTOECC", "Welcome1");//身份验证 用户名 密码
     //Do 调用方法
     client.QueryByElements(new ProductInformationIntegrationpiiQueryByElementsSimpleByRequestMessage_sync());

    Console.ReadKey();
}

 

二.服务引用模式

1.添加引用

image

image

image

image

image

 

 

 

2.调用函数

 static void Main(string[] args)
        {
            // binding 名称保存在app.Config 
            MPO.ManagePurchaseOrderInClient client = new ManagePurchaseOrderInClient("binding");
            //设置访问用户密码
            Debug.Assert(client.ClientCredentials != null, "client.ClientCredentials != null");
            client.ClientCredentials.UserName.UserName = "_TEST";
            client.ClientCredentials.UserName.Password = "Welcome00";

            var a = client.ManagePurchaseOrderInRead(new PurchaseOrderByIDQueryMessage_sync
            {
                PurchaseOrder = new PurchaseOrderByIDQuery
                {
                    ID = new[]
                        {
                            new BusinessTransactionDocumentID
                            {
                                Value="1"
                            }
                        }
                }
            });
            Console.WriteLine(a.ToString());
        }

另外一种方式

  static void Main(string[] args)
     {

        ManageRS.Y5FWZ6LAY_ManageRSClient client=new Y5FWZ6LAY_ManageRSClient(
             Y5FWZ6LAY_ManageRSClient.EndpointConfiguration.binding//选择 binding模式
             );

        //设置身份认证模式为 基本身份认证模式
         ((BasicHttpBinding) client.Endpoint.Binding).Security.Mode = BasicHttpSecurityMode.Transport;
         ((BasicHttpBinding)client.Endpoint.Binding).Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; 
  
         //设置访问用户密码
         client.ClientCredentials.UserName.UserName = "_BYDTOECC";
         client.ClientCredentials.UserName.Password = "Welcome1";


         var a= client.QueryByElementsAsync(new RepairSummaryQueryByElementsOverviewQRYSimpleByRequestMessage_sync())
             .Result;
         Console.WriteLine(JsonConvert.SerializeObject(a));
       
     }
}

 3.使用证书调用

 static void Main(string[] args)
        {
            var basicHttpBinding = new BasicHttpsBinding
            {
                Security =
                {
                    Mode = BasicHttpsSecurityMode.Transport,
                    Transport = {ClientCredentialType = HttpClientCredentialType.Certificate}
                }
            };
            Y5FWZ6LAY_ManageRSClient client = new Y5FWZ6LAY_ManageRSClient(basicHttpBinding, new EndpointAddress("https://my600232.sapbyd.cn/sap/bc/srt/scs/sap/yy5fwz6lay_managers"));
            client.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"c:zs.p12", "密码", X509KeyStorageFlags.UserKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

            Console.WriteLine(JsonConvert.SerializeObject(client
                .QueryByElementsAsync(new RepairSummaryQueryByElementsOverviewQRYSimpleByRequestMessage_sync())
                .Result));
        }

  

原文地址:https://www.cnblogs.com/hongshao/p/10532555.html