ASP.NET中基于soaphead的webservice安全机制
更新时间:2016年05月30日 11:25:14 投稿:yourber
常会用到WebService来通讯,但WebService发布后为了能调用,一般都通过发布到IIS后调用 的。在IIS里可以通过匿名访问,但这样大家都可能访问,不安全,下面提供一种基于soaphead的安全机制。
使用soaphead方法可以在webservice的请求中增加头部信息,当有人调用我们的webservice时,可以通过查询这个请求的头部信息并验证来防止该软件以外的程序调用webservice
一、服务端部分
using System; using System.Web.Services; using System.Web.Services.Protocols; //请注意此命名空间必须有别于代理动态连接库上的命名空间。 //否则,将产生诸如多处定义AuthHeader这样的错误。 namespace SoapHeadersCS { //由SoapHeader扩展而来的AuthHeader类 public class AuthHeaderCS : SoapHeader { public string Username; public string Password; } //[WebService(Description="用于演示SOAP头文件用法的简单示例")] public class HeaderService { public AuthHeaderCS sHeader; [WebMethod(Description = "此方法要求有调用方自定义设置的soap头文件")] [SoapHeader("sHeader")] public string SecureMethod() { if (sHeader == null) return "ERROR:你不是VIP用户!"; string usr = sHeader.Username; string pwd = sHeader.Password; if (AuthenticateUser(usr, pwd)) { return "成功:" + usr + "," + pwd; } else { return "错误:未能通过身份验证"; } } private bool AuthenticateUser(string usr, string pwd) { if ((usr != null) && (pwd != null)) { return true; } return false; } } }
二、客户端部分加上验证的请求
WebService webservice = new WebService(); AuthHeaderCS auth = new AuthHeaderCS(); auth.Username = "vip"; auth.Password = "vippw"; webservice.AuthHeaderCSValue = auth; textBox1.Text = webservice.SecureMethod();
以上就是基于soaphead的webservice安全机制全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法
这篇文章主要介绍了通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)
在asp.net开发中,有很多可以上传的组件模块,利用HTML的File控件(uploadify)的上传也是一种办法,这里为大家介绍一下(uploadify)的一些使用方法2012-12-12基于ABP架构开发的.Net Core项目部署到IIS问题汇总
这篇文章介绍了基于ABP架构开发的.Net Core项目部署到IIS问题汇总,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-06-06在WinForm和WPF中使用GMap.Net地图插件简单教程
GMap.NET是一个强大、免费、跨平台、开源的.NET控件,它在Windows Forms 和WPF环境中能够使用来自Google, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac等地图,下面看一下使用方法2013-12-12
最新评论