.net 客户端调用java或.net webservice进行soapheader验证

摘要:
.net客户端调用java或Netweb服务进行soap头验证最近,业务需要在项目中跨平台调用web服务。客户端和服务器之间使用非对称加密以确保数据安全。web服务的安全验证是基于soap标头的。借此机会整理调用的验证方法。netwebservice和javawebservice并记录它们。将SoapHeader属性添加到代理方法4。客户端调用代码:以上是的主要过程。net调用javaweb服务进行soap头验证。测试在以下环境中通过:。net环境:win10,vs2015,java环境:java8,cxf3.1.12,springboot1.5.13

.net 客户端调用java或.net webservice进行soapheader验证

最近项目中有业务需要跨平台调用web服务,客户端和服务器之间采用非对称加密来保证数据的安全性,webservice的安全验证基于soapheader。

借此机会,顺便整理一下调用.net webservice 和 java webservice 的验证方式,记录下来。

.net端web服务

 1.若web服务是采用.net webservice实现,如下代码:

    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
    // [System.Web.Script.Services.ScriptService]
    public class externalWebService : System.Web.Services.WebService
    {

        public WebServiceSecurityHeader webServiceSecurityHeader = new WebServiceSecurityHeader();

        BizTcmCmdrugsOrg bizTcmCmdrugsOrg = new BizTcmCmdrugsOrg();

        [WebMethod,SoapHeader("webServiceSecurityHeader")]
        public string HelloWorld(string name)
        {
            if (SecurityValidate())
            {
                return "安全的服务: " + name;
            }
            else
            {
                return "对不起,无权访问!";
            }
        }

        private bool SecurityValidate() {

            if (webServiceSecurityHeader.SecurityKey == null)
            {
                return false;
            }

            if (webServiceSecurityHeader.SecurityKey.Equals("123"))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

2. java环境,webservice采用cxf 实现:

JAVA端web服务

a.具体 java 端 cxf 的web服务的实现如下图。

CXF配置:

 .net 客户端调用java或.net webservice进行soapheader验证第1张

  

b.定义拦截器:

.net 客户端调用java或.net webservice进行soapheader验证第2张

  

.net端的webservice代理类和客户端代码:

1.C#引用java的webservice跟引用C#的webservice一样,引用URL就可以使用了,但是C#引用java的webservice不会自动生成soapheader,需要自己添加。

.net 客户端调用java或.net webservice进行soapheader验证第3张

.net 客户端调用java或.net webservice进行soapheader验证第4张

2.建立soapheader类

.net 客户端调用java或.net webservice进行soapheader验证第5张

 3. Reference.cs代理类中默认不会生成soapheader相关代码,要手动添加。有个问题,由于reference.cs中的代码是引用web服务时自动生成的,所以你添加了代码后,若重新更新引用的webservice,手工增加的代码会被清除,需要再次添加,这是个坑。

.net 客户端调用java或.net webservice进行soapheader验证第6张

  

 代理方法增加SoapHeader属性

.net 客户端调用java或.net webservice进行soapheader验证第7张

4.客户端调用代码:

 .net 客户端调用java或.net webservice进行soapheader验证第8张

上面是.net调用 java web服务进行 soapheader 验证的主要过程,在以下环境中测试通过:

.net环境: win10,vs2015,

java环境:java8,cxf3.1.12,spring boot 1.5.13

免责声明:文章转载自《.net 客户端调用java或.net webservice进行soapheader验证》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python 爬虫入门(二)—— IP代理使用cocoapods安装及常用命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

HTTP请求报文

不仅报表样式可以传递请求参数,请求url也可以以类似于键值对的方式传递数据...

解决IDEA打包出现中文乱码的问题

解决方案:1.打开IDEA文件中的设置。...

PX4 飞控源码系统框架介绍

该部分主要是PX4系统的使用的所有的数据结构的集合部分,各种任务和sensor驱动中需要获取的sensor数据都在此部分,还包含各种运行状态的数据结构。...

CSS躬行记(8)——裁剪和遮罩

裁剪最早是在CSS2.1时代由clip属性引入,但该属性只能应用于绝对定位的元素,并且只能裁剪成矩形。CSS3提供了强大的clip-path属性,突破了clip属性的众多限制,接下来将围绕clip-path属性展开讲解。3)裁剪路径对于复杂的形状,可以采用SVG来创建裁剪路径,实现自定义。2)替换元素的填充和定位CSS3引入了两个新属性,用于遮罩替换元素。...

Selenium操作示例——鼠标悬停显示二级菜单,再点击二级菜单或下拉列表

这两天在python中玩selenium时,我遇到了一个问题,那就是鼠标移动到页面上的一个按钮或菜单,二级菜单或下拉菜单自动弹出,然后二级菜单或者下拉列表自动点击。...

建行手机银行4.0版本转账怎么不要求输入支付密码?

建行手机银行单笔限额50万,日限额100万,这个6位数的验证码价值50万元!输入6个数字的支付密码只需要几秒钟而已,转账操作频率不是很高,手机银行转账速度比人工柜台、ATM、电脑网银转账速度不知道快了多少倍,输入6个数字的支付密码这几秒钟相对安全性算什么呢?另外建行还有帐号支付的方式,对电子商户日限额10000元,只需要帐号+手机验证码就可以支付,密码都不用...