一个简单的WebService实现例子,SOAP安全验证
来源:互联网 发布:veket linux下载 编辑:程序博客网 时间:2024/05/16 18:56
WebService是基于SOAP协议进行网络通讯的,但本文只介绍了一个WebService简单的使用例子,没有详细介绍关于SOAP协议的知识,有兴趣的朋友可以网站搜索下,
这方面的资料是非常多。
下面说说WebService的例子吧。
1、新建一个WebService项目,在项目下新建一个SoapHeader.cs类,这个类是用来做WebSerivce安全性验证,此类必须继承.net类库的SoapHeader类。
代码清单:
using System;using System.Web.Services.Protocols;namespace Shuanglu.WebService{ public class MySoapHeader : SoapHeader { public MySoapHeader() { // //TODO: 在此处添加构造函数逻辑 // } private string _userid = string.Empty; private string _password = string.Empty; public string errinfo = "您要找的资源已被删除、已更名或暂时不可用。"; public string UserID { get { return _userid; } set { _userid = value; } } public string Password { get { return _password; } set { _password = value; } } public bool IsValid() { string Msg = string.Empty; return IsValid(_userid, _password, out Msg); } public bool IsValid(out string Msg) { return IsValid(_userid, _password, out Msg); } public bool IsValid(string nUserID, string nPassword, out string Msg) { Msg = ""; try { if (nUserID == "19873534socrates" && nPassword == "daling234534") { return true; } else { Msg = "对不起你无权调用此WebService,可能的原因如下:1、你的帐号管理员禁用了。2、您的帐号的密码不正确!"; return false; } } catch (Exception e) { Msg = "对不起你无权调用此WebService,可能的原因如下:1、你的帐号管理员禁用了。2、您的帐号的密码不正确!<br/>" + e.Message; return false; } } }}
上面的代码清单这一行,
if (nUserID == "19873534socrates" && nPassword == "daling234534")
是验证客户端提交过来的用户名、密码。可以自行设定,在客户端调用的时候需和服务器端一致就可以了,
2、在WebService项目里新建一个 Test.asmx文件 ,用于给客户端调用WebService入口,
客户端调用WebService前必须对调用进行校验,看是否有调用的权限,
有权限则允许调用,否则返回空或错误提示信息,这个可以根据个人实际情况进行定义。
在这里仅写一个简单的调用例子。
代码清单:
using System;using System.ComponentModel;using System.Web.Services;using System.Data;using System.Web.Services.Protocols;namespace Shuanglu.WebService{ /// <summary> /// Article 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class Article : System.Web.Services.WebService { //定义报头,但不实例化,必须由客户端实例化 public MySoapHeader soapheader; [SoapHeader("soapheader", Direction = SoapHeaderDirection.InOut)] [WebMethod(Description = "Web服务调用测试", EnableSession = true)] public string MyTest() { if (soapheader.IsValid()) { string s = "Web服务调用测试成功"; return s; } return ""; } }}
注意上面代码清单中的红色字部分,在这两个地方要一致
public MySoapHeader soapheader;
[SoapHeader("soapheader", Direction = SoapHeaderDirection.InOut)]
如果不一致,将会报错误。
到此,一个简单的WebService项目就建好了。
下面我们将要把它部署起来。
在IIS里新建一个站点,XP系统的也可以新建一个虚拟目录。把新建的站点或是目录的根目录指向到刚才创建的WebService项目,
然后使用浏览器浏览刚才创建WebService站点或虚拟目录 Test.asmx文件,看看是不是已经正确的部署到IIS上面了。
成功部署WebSerivce到IIS,接下来我们就可以做一个简单的调用了。
3、新建一个WebApplication, 或是WebSite项目,
添加WebService引用,在项目名称上右击菜单即弹出下面的菜单,把刚才部署到IIS上面的WebServiceURL填写到下面的URL栏,点前往。
右侧有一个Web 引用名,这个名称可以自定义,在引用WebService里会用到的。填写好之后,点击
”添加引用“ 按钮,完成对WebService的引用。
在项目里新建一个web form 文件,test.aspx,
test.aspx.cs文件代码清单:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace Mike.Web{ public partial class test1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {Mike.Web.Article.MySoapHeader soap = new Mike.Web.Article.MySoapHeader(); soap.UserID = "19873534socrates"; soap.Password = "daling234534"; //此处的用户名,密码需要各服务器上一致 Mike.Web.Article.Article bll = new Mike.Web.Article.Article(); bll.MySoapHeaderValue = soap; string result = bll.MyTest(); Response.Write(result); } }}
上面这一段代码是调用WebService,调用之前,首先要在SOAP报文头部设置用户名,密码,需要各服务器上面一致,用于调用前校验是否有调用权限。
接着是实例化一个WebService调用的实例,把设置好的SOAP报文头赋值给实例的属性。
然后接着下来的一行代码是调用 WebService上面的方法:
tring result = bll.MyTest();最后输出WebService返回的结果。
在WebService, WebApplication, WebSite部署在本地电脑上(或是说在同一台电脑上,是可以从Web端单步调试到WebService里面去的)。
到此,整个WebService调用的例子完毕。
- 一个简单的WebService实现例子,SOAP安全验证
- 一个简单的使用SOAP协议调用Webservice实现
- XFire实现身份验证(基于Xfire SOAP Header的WebService安全验证)
- XFire实现身份验证(基于Xfire SOAP Header的WebService安全验证)
- XFire实现身份验证(基于Xfire SOAP Header的WebService安全验证)
- 基于Xfire SOAP Header的WebService安全验证教程
- 基于Xfire SOAP Header的WebService安全验证教程
- 基于Xfire SOAP Header的WebService安全验证教程
- webservice xfire实现的一个超简单的例子
- 使用CXF框架实现webservice的一个简单例子
- 带有验证的soap webservice
- 实现Webservice 中Soap Header 的用户验证
- extJs+json实现的一个登陆验证的简单例子
- 一个简单的基于SOAP headers的WebService式身份验证
- 一个简单调用webservice的例子
- CXF 创建一个简单的Webservice例子
- 一个Spring Boot, JWT,AugularJS接口安全验证的简单例子
- 【soap】利用php的soap实现webservice
- 最大子序列和问题
- 使用NTP服务器完美解决VMware Linux时间无法同步问题
- Oracle/ Sequence , .sql文件的用法
- POJ 图论 基本概括
- GObject对象系统
- 一个简单的WebService实现例子,SOAP安全验证
- Qt中内存泄露和退出崩溃的问题
- ubuntu server 安装 samba
- IOS学习笔记30—两个ViewController间传值(一)
- WINDOWS后台服务程序编写
- 利用JQuery+Ajax实现aspx页面无刷新的动态数据绑定
- win7 64位 php环境开启curl服务Call to undefined function curl_init()
- 反汇编算法介绍和应用——线性扫描算法分析
- UITextField,UITextView ,UILabel,键盘,UIFont