保护要从Flash中使用的asp.net Web服务

时间:2010-10-18 03:52:50

标签: asp.net web-services security actionscript

我的团队正在使用flash构建一个嵌入asp.net应用程序的游戏。

当游戏结束时,玩家有机会输入他的名字来保存他的分数。 这是使用从flash调用的Web服务完成的。网络服务接收名称和分数。

由于网络服务是公开的,如果在以下条件下我可以从我的闪存中调用它:

  • .swf由相同的asp.net应用程序托管
  • 有两个域可以访问同一个应用程序(我之前已经运行过跨域问题)。
  • 使用SSL不是一种选择。
  • Web服务必须由.swf文件使用。

任何帮助或代码都将不胜感激。

1 个答案:

答案 0 :(得分:2)

那么如果你想使用ASP.NET webapplication而不是webservice,我有一个适用于我的Project的解决方案。

您可以使用LoadVars' and 'sendAndLoad将变量从Flash发送到ASP.NET页面。然后可以使用Request.Form在.NET网页中获取值。现在,当您拥有从Flash到.NET网页的所有变量时,请执行您需要的任何处理(Ado.NET或向用户发送邮件)

这是一个sample,虽然它在ASP中,但是可以在ASP.NET中轻松使用。

但是,如果您尝试在Flash中使用webService连接器,我不确定它,并且在我们可以使用webapp时看不到为什么要使用webservice?

Crossdomain.xml(策略文件)在这里非常重要。

修改
要将数据从flash发送到webservice,我们可以使用以下方法。

var wsConn:WebServiceConnector = new WebServiceConnector();
wsConn.addEventListener("status",fault);
wsConn.addEventListener("result",res);
wsConn.multipleSimultaneousAllowed = true;
//The following WSDL has been deployed locally. Most cases you will have another URL
wsConn.WSDLURL = "http://localhost/flightstatus/FlightHistoryService.wsdl";
//Method you need to call
wsConn.operation = "FlightHistoryGetHistoryOperation";
//Will Send the params as an array to the Webservice
wsConn.params = [flightHistoryRequest];
//wsConn.suppressInvalidCalls = true;
  wsConn.trigger();

如需完整参考,请参阅我Blog上的文章。