我正在开发一个WCF服务,该服务将通过net.tcp与客户端应用程序的n个实例进行通信(由我办公室的另一个程序员开发)。
目前我正在使用net.tcp而没有任何安全性,因为我觉得在这个阶段设置这个并不是必要的,至少在我们接近推出之前是这样。
在开发WCF应用程序期间,在没有安全性的情况下使用标准绑定(在我的情况下是net.tcp)是否有任何损害,那么一旦业务逻辑完成,就实现所有安全要求?在执行安全措施后,是否有任何我需要注意的事情可能无法发挥作用?
答案 0 :(得分:5)
虽然您的整体设计应该从一开始就考虑安全性,但我认为将组件与任何特定的安全策略结合起来并不是一个好主意。您可能希望以非安全的方式使用某些组件,或者使用提供不同安全选项的不同协议。
所以我的回答是肯定的,不是。是的,您需要从一开始就考虑它,但不应该将您的组件与安全需求结合起来。
那就是说,既然你知道你将使用net.tcp,你应该知道默认情况下这个绑定会启用传输安全性。
有关更多信息,请参阅Juval Lowy的精彩Programming WCF Services,第10章.Lowy,在他的ServiceModelEx库中(在本书中详细讨论)提供了一个非常好的框架,您可以在创建后插入你的组件。即使它不是您想要的,您也可以根据自己的需要进行定制。
答案 1 :(得分:3)
应该从一开始就考虑安全性,而不是在最后添加。
为您的安全制定计划,并在您离开时实施,而不是在最后。
参考:Microsoft .NET:为企业架构应用程序
http://www.amazon.com/Microsoft®-NET-架构的应用程序-PRO-开发商/ DP / 073562609X
答案 2 :(得分:2)
你有两个选择,从一开始就把它烘烤,或者在最后拍它。考虑到安全性,我会说它在结冰方面确实不起作用,因此你必须把你的蛋糕搞得一团糟。
但是,我看到你的问题的方式是你已经知道你需要做一些事来解决安全问题,你还没有决定做什么。在这种情况下,我同意Terry你应该围绕一个抽象设计,允许你插入最终的解决方案。
如果我是你,我可能会做一个威胁模型,并用它来考虑你的服务提供的输入和风险。这将帮助您决定最终应该做什么,以及您的抽象是否涵盖所有基础。