WCF中通过序列化传输内容来提高安全性以及访问速度

最近一直在忙项目,之前说过要把百度贴吧辅助工具的源代码发布出来也一直没有时间来在做。今天把在工作中遇到的一个小问题记录一下。
由于现在项目中使用的是WCF服务来进行通讯,很多时候在内网使用都没有注意。项目上线后客户端发布到了外网。这时问题出来了,客户端第一次打开时很卡很卡。这个问题不知道怎么解决,如果谁知道确切的原因请留言或者私下指导我一下。在此先谢谢了!而且在使用WCF服务时所有的内容都使用明文传输,这样难免留下了很多不安全因素。速度又慢安全性又低,在搜索了很多资料之后又的人说使用WCF它会将传输的DataTable序列化成比较庞大的XML所以传输速度慢。我不知道具体是不是真的,但还是做了一点修改,写了一个方法来序列化。我先将DataTable转换成数据流,再将数据流编成Base64的字符串进行传送。
[code lang=”csharp”]///

/// 将可序列化对象转成Base64String
///

/// 对象/// 返回相关数组
public static string ObjectToBase64String(object o)
{
    MemoryStream ms = new MemoryStream();
    BinaryFormatter bf = new BinaryFormatter();
    bf.Serialize(ms, o);
    ms.Close();
    return Convert.ToBase64String(ms.ToArray());
}
///

/// 将可序列化对象转成的Base64String还原为对象
///

/// Base64String/// 相关对象
public static object Base64StringToObject(string basestr)
{
    Byte[] blob = null;
    blob = System.Convert.FromBase64String(basestr);
    MemoryStream ms = new MemoryStream(blob, 0, blob.Length);
    BinaryFormatter bf = new BinaryFormatter();
    return bf.Deserialize(ms);
}[/code]
在使用的时候记得把Config文件的绑定上面修改
[code lang=”xml”]maxStringContentLength="2097152"[/code]
其实这个方法很多地方可以用到,虽然安全级别比较低,但还是避免了在传输时的明文内容,这不单单指序列化DataTable。

本博客所有文章如无特别注明均为原创

如果觉得对你有帮助,可以通过下方打赏对作者表示鼓励

本文采用知识共享署名-非商业性使用-相同方式共享

如若转载,请注明出处:《WCF中通过序列化传输内容来提高安全性以及访问速度》https://www.fangsi.net/648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
锋哥的头像锋哥管理员
上一篇 2013年11月11日 16:52
下一篇 2013年12月12日 10:49

相关推荐

发表回复

登录后才能评论

评论列表(2条)

  • 阿水
    阿水 2013年12月12日 19:22

    终于找到一个关于。net的独立技术博客了~~~而且看起来经验已经相当丰富了!最近在实习,也正在用WCF技术!已经收藏了这个博客了,希望可以学到更多东西

    • 胖子的头像
      锋哥 2013年12月13日 08:32

      @阿水是的,主打.NET啊。只是把自己工作上面遇到的问题记录一下。