WCF的REST服务抓到的包为啥是密文的?

勇哥注:

这是因为默认情况下REST是启用了安全消息的。



默认情况下,REST服务的传输数据是安全加密的。

这个时候你用Fiddle抓包,看到resphonse部分是密文无法阅读。

类似下面这样:

CliperData后面就是一大串看不懂的密文数据。

s:Body[u:Id=0]
   e:EncryptedData
       e:CliperData


我们可以在服务端和客户端同时去掉安全项。

要注意的是:wsHttpBinding是可以使用可靠的消息传输的(reliableSession enabled="true")。

但是最重要的一点: 一定要保证在客户端与服务端下面的配置完全一致,否则异常。

 <bindings>
            <wsHttpBinding>
                <binding name="wsbind1_IClientInfoDefByServer">
                    <reliableSession enabled="true" />
                    <security mode="None" />
                </binding>
            </wsHttpBinding>
        </bindings>

或者也可以使用代码方式:

WSHttpBinding wsbind13 = new WSHttpBinding();
wsbind13.Name = "wsbind1";
wsbind13.ReliableSession.Enabled = true;
wsbind13.Security.Mode = SecurityMode.None;
using (ChannelFactory<IClientInfoDefByServer> channelFactory = new ChannelFactory<IClientInfoDefByServer>(wsbind13, 
"


下面看下去掉安全设定的后的效果:


下图是WCF的REST服务的一次Get调用。

这里有一个疑问,为啥一次get调用,Fiddler会抓到两条信息?

有人说:第一次请求是options请求,是一个预检请求,判断通信是否正常,通讯正常则发起正真的请求

对这个结论感觉也不怎么靠谱。

那是不是因为消息先转发到了127.0.0.1:8888(Fiddle的代理端口),再转到实际目标服务器,从而造成这种现象呢?

不过貌似也不是吧,因为两条Host都显示的是192.168.20.200。

所以这个问题暂时勇哥也不明白。


image.png


我们再看resphonse的报文,已经是可以阅读的xml内容了。

image.png


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-07-12 15:45:46 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864