Web Service的安全访问【SoapHeader身份认证】
2012-06-04 17:48
459 查看
web service安全访问方式可以以下安全措施:
(1)是谁调用?-----soapheader身份认证
(2)来自哪里?-----访问IP认证
(3)加密传输?-----SSL安全访问
本文主要讲解通过SoapHeader来增强Web Service的安全性
(1)自定义soapheader派生类
(2)添加基于SoapHeader验证的web service接口方法:
(3)客户端调用
(1)是谁调用?-----soapheader身份认证
(2)来自哪里?-----访问IP认证
(3)加密传输?-----SSL安全访问
本文主要讲解通过SoapHeader来增强Web Service的安全性
(1)自定义soapheader派生类
/// <summary> /// SoapHeader安全验证 /// </summary> public class CredentialSoapHeader : SoapHeader { private string m_username; private string m_password; public string Username { get { return m_username; } set { m_username = value; } } public string Password { get { return m_password; } set { m_password = value; } } public bool VerifyCredentials(string name, string pwd, out string msg) { msg = ""; try { if (name == "test" && pwd == "test") { return true; } else { msg = "对不起,您无权限调用此web服务"; return false; } } catch { msg = "对不起,您无权限调用此web服务"; return false; } } }
(2)添加基于SoapHeader验证的web service接口方法:
CredentialSoapHeader soap = new CredentialSoapHeader(); string msg = string.Empty; #region 退款 /// <summary> /// 统计退款个数 /// </summary> /// <param name="itemid">项目ID</param> /// <param name="productid">产品ID</param> /// <param name="state">退款状态:待处理,处理中,已退款</param> /// <returns></returns> [WebMethod] [SoapHeader("soap")] public int RefundCount(int itemid, int productid, int state) { if (soap.VerifyCredentials(soap.Username, soap.Password, out msg)) { int count = 0; return count; } else { return 0; } }
(3)客户端调用
/// <summary> /// 获取安全凭证 /// </summary> /// <returns></returns> private static CTOCInterface.CredentialSoapHeader GetInterfaceSoapHeader() { CTOCInterface.CredentialSoapHeader header = new CTOCInterface.CredentialSoapHeader(); header.Username = MODEL.SystemConfigInfo.KEY_WTCTOCServiceUsername; header.Password = MODEL.SystemConfigInfo.KEY_WTCTOCServicePassword; return header; } /// <summary> /// 统计退款个数 /// </summary> /// <param name="userlogin"></param> /// <returns></returns> protected static int RefundCount(int itemid, int productid, int state) { using (CTOCInterface.CTOCGroupPurchaseSoapClient client = new CTOCInterface.CTOCGroupPurchaseSoapClient()) { try { return client.RefundCount(GetInterfaceSoapHeader(), itemid,productid,state); } catch { return null; } } }
相关文章推荐
- 确保web安全的https、确认访问用户身份的认证(第七章、第八章)
- Security - 轻量级Java身份认证、访问控制安全框架
- Struts2中利用filter、session实现安全访问和身份认证
- Tivoli身份认证新品 访问安全无与伦比
- 网络安全之身份认证和访问控制实现原理(ZZ)
- Web Service通过SoapHeader身份验证
- 安全芯片Z8IDA芯片介绍-身份认证加密芯片方案
- 身份认证和访问控制实现原理
- MongoDB安全及身份认证
- 在.NET下如何用WebService实现身份认证,及如何跟踪用户的访问[链接]
- Ajax访问Xml Web Service的安全问题以及解决方案
- ASP.NET Core的身份认证框架IdentityServer4--(3)令牌服务配置访问控制跟UI添加
- OpenID与传统Email用户身份认证模式整合时的安全问题和解决方法
- Web Service安全控制之——访问IP限制
- linux远程访问及认证安全
- 【安全牛学习笔记】思路、身份认证方法、密码破解方法、字典
- WebService安全 - 文件夹 目录安全性 - 身份验证与访问控制
- 在ASP编程中,身份认证可以说是常要用到的。但怎么样才能做到认证的安全呢?
- 基于http协议的api接口对于客户端的身份认证方式以及安全措施
- Web Service安全控制之——SoapHeader