webService访问加密-Soapheader

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 原文:webService访问加密-Soapheader转载:http://blog.csdn.net/wanderocn/article/details/6584098 WebService head加密,可以对 WebService设置访问用户名和密码,增强 WebService的安全性 使 WebService只能被授权用户使用。
原文: webService访问加密-Soapheader

转载:http://blog.csdn.net/wanderocn/article/details/6584098

WebService head加密,可以对 WebService设置访问用户名和密码,增强 WebService的安全性 使 WebService只能被授权用户使用。
具体实现步骤:
1、 定义一个 soapheader派生类用来实现 WebService访问权限验证

 

using System.Data;  
using System.Configuration;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.HtmlControls;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
  
/// <summary>  
///MySoapHeader 的摘要说明  
/// </summary>  
public class MySoapHeader:System .Web .Services .Protocols .SoapHeader   
{  
    private string _uname = string.Empty;//webservice访问用户名  
  
    public string Uname  
    {  
        get { return _uname; }  
        set { _uname = value; }  
    }  
    private string _password = string.Empty;//webservice访问密码  
  
    public string Password  
    {  
        get { return _password; }  
        set { _password = value; }  
    }  
  
  
    public MySoapHeader()  
    {  
     //  
     //TODO: 在此处添加构造函数逻辑  
     //  
    }  
    public MySoapHeader(string uname, string upass)  
    {  
        init(uname, upass);  
    }  
    private void init(string uname, string upass)  
    {  
        this._password = upass;  
        this._uname = uname;  
    }  
    //验证用户是否有权访问内部接口  
    private bool isValid(string uname, string upass, out string msg)  
    {  
        msg = "";  
        if (uname == "admin" && upass =="admin")  
        {  
            return true;  
        }  
        else {  
            msg = "对不起!您无权调用此WebService!";  
            return false;  
        }  
    }  
    //验证用户是否有权访问外部接口  
    public bool isValid(out string msg)  
    {  
        return isValid(_uname, _password,out msg);  
    }  
}

2、 定义有需要验证的 WebService。

 

using System.Collections;  
using System.Linq;  
using System.Web;  
using System.Web.Services;  
using System.Web.Services.Protocols;  
using System.Xml.Linq;  
  
/// <summary>  
///test 的摘要说明  
/// </summary>  
[WebService(Namespace = "http://tempuri.org/")]  
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。   
// [System.Web.Script.Services.ScriptService]  
public class test : System.Web.Services.WebService {  
  
    public test () {  
  
        //如果使用设计的组件,请取消注释以下行   
        //InitializeComponent();   
    }  
    public MySoapHeader myheader = new MySoapHeader();  
    [WebMethod]  
    public string HelloWorld() {//普通WebService,无需验证  
        return "Hello World";  
    }  
    [SoapHeader("myheader")]//加入此头部的WebService需要验证,不加则为普通WebService无需验证  
  
    [WebMethod(Description = "根据产品编号查询产品的价格", EnableSession = true)]  
  
    public string GetProductPrice2(string ProductId)  
    {  
  
        string msg = "";  
  
        //验证是否有权访问  
  
        if (!myheader.isValid(out  msg))  
        {  
  
            return -1;//返回错误信息  
  
        }  
  
        return ProductId;  
    }  
 }

3、 客户端调用方法
引用 WebService定义 WebService名称为 :Myservice。

using System.Configuration;  
using System.Data;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.HtmlControls;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
public partial class _Default : System.Web.UI.Page   
{  
    protected void Page_Load(object sender, EventArgs e)  
    {  
        myservice.test te = new abc.test();  
        myservice.MySoapHeader myhead = new MySoapHeader();  
        myhead.Uname = "admin";//输入WebService访问用户名  
        myhead.Password = "admin";//输入WebService访问密码  
        te.MySoapHeaderValue = myhead;//  
        string test = te.GetProductPrice2("ok!");  
      Response.Write(aa);//用户名、密码输入正确则输出ok 否则输出 错误msg  
    }
目录
相关文章
|
1月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
59 3
|
1月前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
118 3
|
1月前
|
安全 网络安全 数据安全/隐私保护
内网IP地址实现HTTPS加密访问教程
在内网环境中,为确保数据传输的安全性,绑定SSL证书搭建HTTPS服务器至关重要。本文介绍了内网IP地址的前期准备、申请SSL证书的步骤以及客户端配置方法。具体包括选择合适的CA、注册账号、提交申请、下载证书,并在客户端导入根证书,确保通信数据的安全加密。推荐使用JoySSL提供的技术解决方案,确保内网设备通信安全。
内网IP地址实现HTTPS加密访问教程
|
7月前
|
算法 安全 Shell
SSH:加密安全访问网络的革命性协议
SSH:加密安全访问网络的革命性协议
211 9
|
6月前
|
监控 安全 网络安全
探讨网站加密访问的安全性问题:HTTPS的防护与挑战
**探讨HTTPS在网站加密中的角色,提供数据加密和身份验证,防范中间人攻击。心脏滴血漏洞示例显示持续维护的必要性。面临证书管理、性能影响和高级攻击挑战,应对措施包括更新、HSTS策略及用户教育。HTTPS是安全基础,但需不断优化以应对新威胁。**
460 2
|
7月前
|
安全 网络协议 Java
SpringBoot+阿里云配置HTTPS加密访问
SpringBoot+阿里云配置HTTPS加密访问
203 0
|
安全 数据安全/隐私保护
使用openssl 模拟ca进行证书的申请和颁发,并使用证书部署网站的安全连接访问,即https的加密通信
使用openssl 模拟ca进行证书的申请和颁发,并使用证书部署网站的安全连接访问,即https的加密通信
85 0
|
JSON 前端开发 安全
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
293 0
|
XML API 数据格式
十九、.net core使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问webservice接口
使用SoapCore实现在.net core平台下开发webservice;以及使用HttpClientFactory动态访问webservice。首先,需要在包项目下面引用SoapCore:
1100 0
十九、.net core使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问webservice接口
|
网络安全 Apache 数据安全/隐私保护
phpstudy集成下Apache配置SSL证书实现https加密访问
phpstudy集成下Apache配置SSL证书实现https加密访问

热门文章

最新文章