.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=

随便看看

数据不平衡的相关

大多数常见的机器学习算法不能很好地处理不平衡的数据集。例如,搜索引擎的点击预测(点击页面往往占很小的比例)、电子商务中的产品推荐(正在购买的推荐产品的比例很低)、信用卡欺诈检测、网络攻击识别、癌症检测等。处理数据不平衡的方法主要有以下几种。2.数据级别2.1重新采样2.1.1欠采样(下采样)欠采样通过减少丰富类的大小来平衡数据集。它试图通过增加稀有样本的数量...

《学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv

矩阵和图像的操作cvAnd函数其结构voidcvAnd;程序实例#include#include#includeintmain{IplImage*src1,*src2,*src3;src1=cvLoadImage;src2=cvLoadImage;src3=cvLoadImage;cvAnd;cvShowImage;cvShowImage;cvShowIma...

【转】Kettle集群

本文转自:http://blog.csdn.net/dqswuyundong/article/details/5952009KettleCluster Kettle是一个开源ETL工具,以其效率和可扩展性而闻名于业界。其高效的一个重要原因是其多线程和集群功能。Kettle的多线程采用了管道并发机制,这在另一篇文章中专门介绍。本文主要介绍水壶集群。群集允许转换...

「雕爷学编程」Arduino动手做(26)——4X4矩阵键盘模块

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。108种传感器模块系列实验实验二十六:4X4矩阵键盘模块矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。工作原理矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。矩阵键盘所需库文件在ArduinoIDE1.8.0...

页面加载时自动执行(加载)js的几种方法

Js调用onload方法window.onload=function(){func1();func2();func3();}二、JQ方法1.整个页面的document全部加载完成以后执行。不幸的这种方式不仅要求页面的DOMtree全部加载完成,而且要求所有的外部图片和资源全部加载完成。更不幸的是,如果外部资源,例如图片需要很长时间来加载,那么这个js方法执行...

HTML中canvas的大小调整

今天用到canvas元素,发现它的大小不是像普通dom元素一样,直接设置css样式可以改变的,它会由自己原本的大小伸缩。例如,1.如果直接在canvas元素中添加style='300px;height:300px',这会导致伸缩,如图2.换种方式在css样式表中加入样式设置宽高产生的效果也是一样的。...