专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Web Service访问加密设置

Web Service访问加密设置

更新时间:2020-09-23 17:32:06 来源:赢咖4 浏览1181次

Web Service head加密,可以对 Web Service设置访问用户名和密码,增强 Web Service的安全性,使 Web Service只能被授权用户使用。 本文我们一起来看看如何实现Web Service访问加密设置

Web Service访问加密设置具体实现步骤如下:

1、 定义一个 soapheader派生类用来实现 WebService访问权限验证

[csharp] view plaincopy

using System;

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;

///

///MySoapHeader 的摘要说明

///

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、 定义有需要验证的 Web Service。

[csharp] view plaincopy

using System;

using System.Collections;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols;

using System.Xml.Linq;

///

///test 的摘要说明

///

[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

[csharp] view plaincopy

using System;

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

}

}

倘若完成了以上三个步骤,就能完成对Web Service访问加密设置了。掌握如何用Web Service访问加密设置是极其必要的,随着互联网的飞速发展,人们的个人信息也越来越数据化,这就需要保证这些个人数据的安全性,设置访问权限。在本站的Java教程里还有更多的涉及程序安全的实例,我们可以自己下载学习,提升自我。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>