星空网 > 软件开发 > ASP.net

我们一起学习WCF 第三篇头消息验证用户身份

 前言:今天我主要写的是关于头消息的一个用处验证用户信息

下面我画一个图,可以先看图

我们一起学习WCF 第三篇头消息验证用户身份

第一步:我们先开始做用户请求代码

首先:创建一个可执行的上下文对象块并定义内部传输的通道

 using (OperationContextScope scope = new OperationContextScope(userClient.InnerChannel))

然后:创建头消息 要发送的SOAP传输的内容

MessageHeader myHeaderUid = MessageHeader.CreateHeader(
"header", "uid", UId);

header:标头

uid:标头

UId:要传送的信息(是一个object类型的值)

最后:把创建要传输的头内容添加到传输的对象中

OperationContext.Current.OutgoingMessageHeaders.Add(myHeaderUid);

ok这样就完成客户端的编码

我们一起学习WCF 第三篇头消息验证用户身份我们一起学习WCF 第三篇头消息验证用户身份
 1 ValidUserClient userClient =new ValidUserClient(); 2       while (true) 3       { 4         Console.Write("用户名:"); 5         string UId = Console.ReadLine(); 6         Console.Write("密码:"); 7         string Pwd = Console.ReadLine(); 8         using (OperationContextScope scope = new OperationContextScope(userClient.InnerChannel))//创建一个可执行的上下文对象块并定义内部传输的通道 9         {10           MessageHeader myHeaderUid = MessageHeader.CreateHeader(11            "header", "uid", UId);12           MessageHeader myHeaderPwd= MessageHeader.CreateHeader(13              "header", "pwd", Pwd);14           OperationContext.Current.OutgoingMessageHeaders.Add(myHeaderUid);15           OperationContext.Current.OutgoingMessageHeaders.Add(myHeaderPwd);16           Console.WriteLine(userClient.User());17         }        18       }

客户端编码

第二步:服务端编码

首先:开始检索头消息

 int uIdIndex = OperationContext.Current.IncomingMessageHeaders.FindHeader("header", "uid");(注意保持与客户端的保持一致,得到的是索引也就是头信息位置(如果index=-1就表示没有头消息))

然后:通过索引来获取头消息内容
      Uid = OperationContext.Current.IncomingMessageHeaders.GetHeader<string>(uIdIndex);
最后:我们就进行逻辑判断
我们一起学习WCF 第三篇头消息验证用户身份我们一起学习WCF 第三篇头消息验证用户身份
 1  Dictionary<string,string> AllUsers =new Dictionary<string, string>(10);  2    public bool User() 3     { 4      InsertUser();//模拟数据库动态添加用户 5      string Uid = string.Empty; 6      string Pwd = string.Empty; 7      bool result = false; 8      int uIdIndex = OperationContext.Current.IncomingMessageHeaders.FindHeader("header", "uid"); 9      int pwdIndex = OperationContext.Current.IncomingMessageHeaders.FindHeader("header", "pwd");10      if (uIdIndex != -1)11       {12        Uid = OperationContext.Current.IncomingMessageHeaders.GetHeader<string>(uIdIndex);13       }14      if (pwdIndex!=-1)15       {16        Pwd = OperationContext.Current.IncomingMessageHeaders.GetHeader<string>(pwdIndex);17       }18      if (AllUsers.ContainsKey(Uid))19       {20        if (AllUsers[Uid] == Pwd)21         {22          result = true;23         }24 25       }26      return result;27     }28 29    private void InsertUser()30     {31      AllUsers.Add("admin","123456");32      AllUsers.Add("sa","123456");33      AllUsers.Add("ldc","123456");34      AllUsers.Add("zd","123456");35    }

服务端编码

这样就简单的把头消息验证用户完成了,我写的有很多不好的地方大家看到了可以提出来,共同学习。下一篇着手写消息协定和数据协定。

源码下载





原标题:我们一起学习WCF 第三篇头消息验证用户身份

关键词:wcf

wcf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

OYY跨境在线培训平台:https://www.ikjzd.com/w/1573203390016954369
小包:https://www.ikjzd.com/w/1573203394782027777
小包专线:https://www.ikjzd.com/w/1573203397353136130
打包贷款:https://www.ikjzd.com/w/1573203397927755778
装箱单:https://www.ikjzd.com/w/1573203398472671234
Page Speed Insights:https://www.ikjzd.com/w/1573203402042023938
武陵山大裂谷周围景点 武陵山大裂谷周围景点图片:https://www.vstour.cn/a/411233.html
南美旅游报价(探索南美洲的旅行费用):https://www.vstour.cn/a/411234.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流