.net 客户端调用java或.net webservice进行soapheader验证
.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(""))
{
return true;
}
else
{
return false;
}
}
2. java环境,webservice采用cxf 实现:
JAVA端web服务
a.具体 java 端 cxf 的web服务的实现如下图。
CXF配置:

b.定义拦截器:

.net端的webservice代理类和客户端代码:
1.C#引用java的webservice跟引用C#的webservice一样,引用URL就可以使用了,但是C#引用java的webservice不会自动生成soapheader,需要自己添加。


2.建立soapheader类

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

代理方法增加SoapHeader属性

4.客户端调用代码:

上面是.net调用 java web服务进行 soapheader 验证的主要过程,在以下环境中测试通过:
.net环境: win10,vs2015,
java环境:java8,cxf3.1.12,spring boot 1.5.13
.net 客户端调用java或.net webservice进行soapheader验证的更多相关文章
- 用C#.NET调用Java开发的WebService传递int,double问题
用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到string类型的属性值,却不能得到int类型.double和D ...
- Android客户端调用Asp.net的WebService
Android客户端调用Asp.net的WebService 我来说两句 |2011-11-23 13:39:15 在Android端为了与服务器端进行通信有几种方法:1.Socket通信2.WCF通 ...
- delphi7调用java写的webservice,在调用的时候弹出“wssecurityhandler:request does not contain required security header”
delphi7调用java编写的webservice问题我用delphi7调用java写的webservice,在调用的时候弹出“wssecurityhandler:request does not ...
- 用C#.NET调用Java开发的WebService传递int,double问题,出现java无法获得值!
https://www.cnblogs.com/zhbsh/archive/2013/04/22/3035477.html 用C#.NET调用Java开发的WebService时,先在客户端封装的带有 ...
- Java与WCF交互(二):WCF客户端调用Java web service【转】
原文:http://www.cnblogs.com/downmoon/archive/2010/08/25/1807982.html 在上篇< Java与WCF交互(一):Java客户端调用WC ...
- 转载——Java与WCF交互(二):WCF客户端调用Java Web Service
在上篇< Java与WCF交互(一):Java客户端调用WCF服务>中,我介绍了自己如何使用axis2生成java客户端的悲惨经历.有同学问起使用什么协议,经初步验证,发现只有wsHttp ...
- .NET调用Java写的WebService
最近遇到一个用.net调用java写的webservice的应用,对方程序员提供了一个后缀为wsdl的文件,这个跟.Net里面生成的wsdl文件差不多,起初没什么概念就查了点资料,知道可以将这个wsd ...
- C# 调用Java Webservice 加入SoapHeader 验证信息
C#调用java 编写的webservice时不会自动生成 soapheader 类接口的,需要改动Reference.cs. 在生成的代理类referende.cs中进行如下操作: 一.在声明pub ...
- delphi调用java编写的webservice
delphi调用java编写的webservice JAVApojo: public class GroupInfo implements Serializable{ private stati ...
随机推荐
- nodemanager 无法启动报错“doesn't satisfy minimum allocations”
在启动nodemanager节点nodemanager时候报错 2019-03-29 14:15:44,648 INFO org.apache.hadoop.yarn.server.nodemanag ...
- 正则-关于一个结果不确定现象怪的研究(reg.test(‘-1’))
先看下边代码 var value = '-1'; var reg = /^-{0,1}\d+$/g; debugger; if (reg.test(value)||reg2.test(value)) ...
- round函数解决oracle报错"OCI-22053: 溢出错误"的问题
继上次公司网站报错除数为0的问题,这次又来报错溢出错误,还是同一条语句!搜索网上的解决方法,发现问题描述和解决方法如下: Oracle 数值数据类型最多可存储 38 个字节的精度.当将 Oracle ...
- wifi rate vs mode
- Java垃圾回收算法和内存分配策略
垃圾回收算法和内存分配策略 Java垃圾回收 垃圾收集,也就是GC并不是Java的伴生物,而对于GC的所需要完成任务主要就是: 1.哪些内存是需要回收的? 2.何时去回收这些内存? 3.以何种方式去回 ...
- js的closures(闭包)
JS中的闭包(closure) 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面就是我的学习笔记,对于Javascript初学者应该是很有用 ...
- transform,transtion属性
transform:变化类型,transtion变化方式
- Road of computer tec 01
回顾自己过去将近3年的学习经历 当初报考的时候,自己是真正喜欢这个专业的么? 当初报这个专业的时候,对计算机还没有什么很明显的概念,只知道这个专业以后是要每天面对电脑的,喜欢不喜欢谈不上吧,但是还蛮感 ...
- Create Maximum Number
Given two arrays of length m and n with digits 0-9 representing two numbers. Create the maximum numb ...
- Linux 虚拟文件系统概述
转自:http://blog.csdn.net/u011373710/article/details/70198080 文章梗概 本文首先以“尽量不涉及源代码”的方式讨论Linux虚拟文件系统的存在的 ...