Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Silverlight编程中,如何防止访问者缓存下载的内容?_Silverlight - Fatal编程技术网

在Silverlight编程中,如何防止访问者缓存下载的内容?

在Silverlight编程中,如何防止访问者缓存下载的内容?,silverlight,Silverlight,我想用Silverlight创建一个在线测验网站。 注册用户登录后,他们可以每页查看和回答一次测验。 要继续下一个问题,他们必须按下“下一步”按钮,并从服务器下载新数据。 前面的问题不会被缓存。因此,每次请求问题时,都会再次从服务器重新加载问题 我的问题是如何在silverlight中执行上面的场景 先谢谢你 创建silverlight应用程序,通过Web服务请求问题。只要您使用的是正确的web服务,并且没有以某种方式伪造它。浏览器不会缓存webservice响应。您可以使用它来存储一些与状态相

我想用Silverlight创建一个在线测验网站。 注册用户登录后,他们可以每页查看和回答一次测验。 要继续下一个问题,他们必须按下“下一步”按钮,并从服务器下载新数据。 前面的问题不会被缓存。因此,每次请求问题时,都会再次从服务器重新加载问题

我的问题是如何在silverlight中执行上面的场景


先谢谢你

创建silverlight应用程序,通过Web服务请求问题。只要您使用的是正确的web服务,并且没有以某种方式伪造它。浏览器不会缓存webservice响应。

您可以使用它来存储一些与状态相关的信息(如果需要,您甚至可以在保存之前对其进行加密-这是您的存储,您可以使用它做任何事情)。另一种存储状态信息的方法是使用cookie,以及


我所指的“状态”信息是您Silverlight应用程序的状态和/或进度,即您可以跟踪用户在问题中的位置,避免询问他们已经完成的问题。如果最终用户知道自己在做什么,这两种类型的存储都可以被删除。但你不应该让这件事让你担心——如果他们想作弊,那就让他们去吧。

既然你的意图已经明确,你就想阻止在程序集中发现内容。答案是您无法真正保护您的程序集。为了运行它,客户端需要获取它,如果可以获取它,那么黑客就可以获取它,试图限制缓存并不是真正的预防措施


然而,解决办法是不要在你的程序集中放敏感的东西。将代码放置在服务器端,以执行敏感内容,并通过服务接口(如WCF或Web服务)访问该代码,甚至通过XML输出中的普通旧XML来访问该代码。

您所说的“前面的问题未缓存”是什么意思?来自服务器的HTTP freshness标头应该可以帮助您做到这一点;检查Silverlight发出HTTP请求的方式。@alejandrobog,我测验中的前一个问题表示任何已查看的问题。您能解释一下为什么要这样做吗?如果问题是同一个问题,为什么不缓存它?这是为了防止作弊吗?@AnthonyWJones,是为了防止访问者对底层组件进行反向工程。+1是为了清楚地表明他想要什么。很遗憾,你没有告诉他有关Silverlight Spy和Reflector的事情,只是为了吓唬他逆向工程有多么容易:)