我刚刚读了一些有关隐藏Silverlight代码的帖子。主要结论是,你可以混淆它,但你真正不能隐藏它,因此必须在服务器上进行安全措施。但是,任何人都可以通过Fiddler看到向特定Web服务发布的数据类型。例如,他们可以看到我正在调用UpdateCustomer.asmx。如果他们这样做,我该怎么办才能阻止他们也调用那个asmx呢?是否有一种方法只允许“我的Silverlight应用程序”调用该方法?
不行。有人总是可以反向工程您的 Silverlight 应用程序,以窃取您使用的任何身份验证凭据。您可以使此反向工程过程比原本更加繁琐,但无法使其变得不可能。
如果有人从自定义客户端访问您的 URL,这会成为问题吗?您正在对用户进行身份验证,对吧?
如果你真的想要非常谨慎,你可以通过一个 Web 服务端点来编排客户端应用程序的所有调用,并加密有效载荷...就像这样:
但那只是疯狂的想法...而且有点毫无意义,因为你可以反向工程 Silverlight 代码本身,以找出 "真实" 服务。如果你真的想保护你的应用程序,使用身份验证;在客户端和服务器端都使用身份验证(即,对服务的调用需要某种身份验证票据)