软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 网络编程 > ASP教程 > SoapHeader实践之客户端验证

SoapHeader实践之客户端验证

编写Webservice时经常需要对用户的身份进行认证,我们可以给用户一个令牌,然后在每个方法签名中增加该令牌做为参数,以此来验证用户的合 法性。但这杨就必须修改所有的方法签名,很显然是难以维护的。因此我们要尽量避免修改方法签名,而使用SoapHeader恰好可以满足我们的需求,通过 将令牌保存在SoapHeader类中来实现在客户端和服务端的传送。以下是具体的操作流程:

烈火网:http://www.veryhuo.com/



一 自定义SoapHeader类

C#-Code:
public class MyHeader :SoapHeader{ public MyHeader() { } private string _token = ""; public string Token { get { return _token; } set { _token = value; } }}
注意一定要继承SoapHeader类

二 编写Webservice

C#-Code:
[WebService(Namespace = "http://www.liuwu.net/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]public class WebService : System.Web.Services.WebService{ public MyHeader header; [WebMethod] [SoapHeader("header")] public bool IsRightUser() { return CheckToken(); } /// <summary> /// 验证令牌 /// </summary> /// <remarks> ///此处仅供演示,根据实际情况可添加更加复杂的验证过程 ///</remarks> /// <returns></returns> private bool CheckToken() { if (header != null && header.Token == "123") { return true; } return false; }}
我们声明了MyHeader类的实例header,并且在IsRightUser函数中增加了SoapHeader属性,指明使用header来保存他的值。

三 客户端调用

新建winform应用程序,并添加web引用,引用名为:SoapHeaderTest,具体调用方法如下

C#-Code:
SoapHeaderTest.MyHeader header = new SoapHeaderTest.MyHeader();header.Token = "123";SoapHeaderTest.WebService ws = new SoapHeaderTest.WebService();ws.MyHeaderValue = header;bool b = ws.IsRightUser();
注意必须给ws的MyHeaderValue赋值
    相关阅读
    栏目导航
    推荐软件