通过SOAPHeader增强WebService的安全性
阅读目录
一:前言
二:SOAPHeader实现身份验证步骤
三:通过SOAPHeader实现身份验证步骤实例
一:前言
在互联网上,调用WebService往往需要进行身份验证,我们的WebService不可以让任何人都能够调用的,一般能调用我们的WebService的不是我们的客户,就是我们的合作方,调用WebService时我们需要身份验证,只有通过身份验证的用户才能调用相应的WebService资源,我们可以通过SOAPHeader自定义的身份验证方式实现验证
二:SOAPHeader实现身份验证步骤
1:自定义一个类比如CustomSOAPHeader,该类继承自SOAPHeader
2:在CustomSOAPHeader类里面写我们自定义验证的逻辑
3:在WebService中声明CustomSOAPHeader类型的公共成员header,并在暴露给客户端调用的方法中调用header的自定义验证方法实现身份验证功能
4:在客户端首先创建CustomSOAPHeader类型的实例对象header,然后将用户名和密码传入header,最后调用WebService实例对象的CustomSOAPHeaderValue属性将header传入WebService
三:通过SOAPHeader实现身份验证步骤实例
1:Service.cs
public class CustomSOAPHeader : SoapHeader
{
public CustomSOAPHeader()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public string name;
public string password;
public bool IsValid(string strUserName, string strPassword)
{
if (strUserName == "三星电子" && strPassword == "abc")
return true;
else
return false;
}
}
public class Service : System.Web.Services.WebService
{
public Service ()
{
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
public CustomSOAPHeader header;
[WebMethod]
[SoapHeader("header")]
public string HelloWorld()
{
if (header.IsValid(header.name, header.password))
return "SOAP标头验证成功,返回HelloWorld";
return "SOAP标头验证失败";
}
}
2:Program.cs
static void Main(string[] args)
{
localhost.Service service = new localhost.Service();
localhost.CustomSOAPHeader header = new localhost.CustomSOAPHeader();
header.name = "三星电子";
header.password = "abc";
service.CustomSOAPHeaderValue = header;
Console.WriteLine(service.HelloWorld());
Console.ReadLine();
}
转载于:https://www.cnblogs.com/menglin2010/archive/2012/03/31/2427251.html
通过SOAPHeader增强WebService的安全性相关推荐
- Docker增强Container的安全性
本文讲的是Docker增强Container的安全性[编者的话]Docker公司公布了他们最近新推出的安全扫描技术,此技术用于改善Docker容器安全性并且已经在Docker Cloud上上线.通过安 ...
- 在 Go 语言中增强 Cookie 的安全性
本文讲的是在 Go 语言中增强 Cookie 的安全性, 原文地址:Securing Cookies in Go 原文作者:Jon Calhoun 译文出自:掘金翻译计划 本文永久链接:github. ...
- 在SQL2005中,关闭SQL Browser服务,增强数据库的安全性
关闭SQL Browser服务,增强数据库的安全性 1. 在SQL 2005中,SQL Browser服务关闭后,如果客户端需要访问SQL Server数据库,并且SQL Server服务的端口非默认 ...
- 金蝶 EAS WebService 启动安全性后的调用方法
金蝶EAS WebService开启安全性后,调用方法代码 首先登录获取 SessionID public static String login() throws ServiceException, ...
- 使用SoapHeader对WebService进行身份验证
1.新建CheckUserSoapHeader View Code public class CheckUserSoapHeader : SoapHeader{public string UserNa ...
- 埃森哲硬件专利寻求增强区块链安全性和可扩展性
专业服务公司埃森哲已经提交了一项专利,旨在利用专利硬件提高区块链交易的速度和安全性. 除了加速软件流程外,标题为"硬件区块链加速"的专利中描述的技术还将提高支持交易链的应用程序的安 ...
- IIS 日志解析,增强 IIS 服务器安全性
企业严重依赖 Microsoft Internet 信息服务 (IIS) 服务器来托管其网页和 Web 应用程序,以及存储其文件.请务必妥善保护您的 IIS 服务器(包括 Web 和 FTP). 什么 ...
- HBuilder js,css压缩,增强代码的安全性
js.css压缩 压缩不是加密,也不是混淆.但压缩后的js文件,往往也具有混淆的功能. js.css压缩是很常见的技术,我们经常看到各种框架的文件名是xxx.min.js,xxx.min.css. 使 ...
- F5提高Microsoft SharePoint 2010平台的灵捷 度、性能和安全性
Microsoft® SharePoint® Server 2010为全球各地的企业实现了创新的.智能的业务协作.企业采用Microsoft SharePoint无缝地连接用户.团队和知识.Share ...
最新文章
- Go 语言的垃圾回收演化历程:垃圾回收和运行时问题
- StringBuilder/StringBuffer类
- 计算机视觉与模式识别方面的代码code
- 使用清华开源镜像安装tensorflow
- MySQL高级 - 存储引擎 - 选择原则
- php文件锁解锁是删除对应的文件_软件 | 文件解锁强制删除工具 Wise Force Deleter v1.49...
- 网页html 图片横向摆放,css实现多张图片横向居中显示的方法
- JDK源码 - BitSet的实现
- Pytest跳过执行之@pytest.mark.skip()详解大全
- 递归——数的计算(洛谷 P1028)
- 三大缓存框架(Ehcache+Memcache+Redis)基础
- Android:如何使用资源名称从资源中获取字符串?
- 闲鱼的统一跨端 API 方案 —— Uni API
- protocol buffer使用中的问题This is supposed to be overridden by subclasses
- 灾害应急管理信息化建设“四步走”——以水旱灾害为例
- Pandas 统计分析基础 笔记2 任务4.2 掌握DataFrame的常用操作
- 35个经典口误--笑翻你
- 频率很高的笔试题--动态规划类型(中)
- 什么是全景图?如何进行vr全景图拍摄
- 谈谈对MVVM的理解?
热门文章
- metainfo可以设置说明_Vs Code安装说明及入门操作
- fanuc机器人码垛编程实例_两个很简单的FANUC系统CNC加工中心编程实例
- 判断php对象不包含的key,如何判断一个对象是否包含指定Key
- 外服封号_王者荣耀外服玩家被封号十年吐槽无辜,官方复审后,玩家表示轻了...
- Javascript ES6 Promise同步读取文件(使用async、await)
- ajax没效果,ajax没有效果
- 华为acl怎么生效_华为ACL配置教程
- 20200910:力扣204周周赛题解上(Java/Python/Cpp)
- 二位四进制计数器_金三银四还在看JVM这一块?看完这篇万字JVM面试解析就够了...
- python同时发大量请求_Python批量发送post请求的实现代码