SoapUI工具中的用户名和密码如何用net代码实现传入

问题:

最近公司与陶氏SAP对接时,陶氏IT要求我们通过SoapUI调用接口时,要让SoapUI工具里面输入用户名和密码才可以调用。

 

CSDN高分提问:

为此还在CSDN中出高分提了一个问题,如下:

“一般的我们做Soap接口时候,在程序中我们一般都是把用户名和密码写在SoapHeader里面,但是如何编码,可以把用户名和密码传到SoapUI属性中的用户名和密码里面呢?
net如何把用户名和密码传到SoapUI属性里面?”

但一直没来回答,只好自己慢慢研究,通常我们接口时,用户名和密码都是在SoapHeader里面,再者因为没了解SoapUI工具输入的用户名和密码的机制,直接通过抓包工具看到 Base Authorization才慢慢的才到方向,

所以这里记录一下,以分享给遇到相同问题的同学们。

 

解决的方法:

(1).这种验证方式流程是,如果在浏览中打开地址时,会弹出输入用户名和密码,只有当用户名和密码输入正确后,接口地址才能正常显示。

(2).实际上SoapUI工具中的用户名和密码方式使用的认证方式是 “基本身份验证”,所以需要在IIS中把 “身份验证”方式中 “基本身份验证”启用,原先默认的 “匿名身份验证”方式禁用。

(3).接口中不需要做修改。

(4).客户端调用:

   private void button1_Click(object sender, EventArgs e)
        {
            ServicePointManager.ServerCertificateValidationCallback += dowapi.Service1.RemoteCertificateValidate;//验证服务器证书回调自动验证
            dowapi.Service1 serverapi = new dowapi.Service1();
            //验证用户名和密码
            string username = "username";
            string password = "password";
            string url = "https://xxx/xx.asmx?wsdl/";
            CredentialCache mycache = new CredentialCache();
            mycache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));
            serverapi.Credentials = mycache;

            string returnmessage = serverapi.ShipmentDeliveryChinaChoice_Request_MT(action, sb.ToString());

        }

 

posted @ 2017-08-18 11:15  天水一阶  阅读(3554)  评论(0编辑  收藏  举报