1

我有一个Silverlight应用程序将在开放的互联网上运行,基本上每个人都可以使用。RIA服务认证 - 什么类型?防止“复制?”

该应用程序利用RIA服务来处理服务器上的数据库中的数据。

应用程序创建,读取,更新和删除不同品种的数据,但我只希望这些操作发生在应用程序内。

这带来两个问题:

  1. 是否有使用什么类型的身份验证的具体建议?窗体或Windows?
  2. 有没有办法阻止某人“链接”到应用程序?也就是说,从包含页面复制HTML,将其粘贴到本地机器的HTML页面中并运行它?最终目标是只允许应用程序在嵌入到直接从我的服务器和我的服务器请求的页面中时运行?

回答

2
  1. 如果正在内部网络上使用您的应用程序,那么Windows身份验证是最好的。否则(就像你的情况)使用表单身份验证。

  2. Silverlight自动阻止应用程序(除非它们以提升的信任运行)访问Internet中的资源(Web服务,HTML等),这些资源不是来自应用程序源自的域,除非该域具有跨域策略文件在其根目录中。 Silverlight运行时会阻止这个(不是服务器),所以这是一个基于客户端的安全功能 - 不是基于服务器的。通过在服务器上没有适当的跨域策略文件,应用程序将只能在从服务器运行时(与以后相同)与域服务进行通信。应用程序将运行,但对这些服务的调用将失败。

你总是可以做一个检查什么领域的应用起源于代码,并且,如果你想防止其他域在所有运行的应用程序相匹配的硬编码的域名。

希望这有助于...

克里斯