FMS异步与其他web语言达成异步验证

  如做到 FLASH 输入账号 密码去取得数据库中的数据, 目前需要.net 或php做中转。方法有sendandload和WebService较为常用(目前AS2 AS3本人不熟不知道能否直接与数据沟通)。 但大家假想,如果用FLASH客户端直接去从取。如果页面地址暴露将会有什么后果。。不能想都知道。

最理想的处理方法则是 用FLASH 把账号,密码传给FMS,让FMS去做和数据库登录验证的工作。这样才能达到最安全的机制.如下图的验证机制。

从 图上可以看出,验证的主要还是由.net和php做验证。FMS只是做了把账号密码中转了一次。但这样做法有很大用途。这样让玩家无法得取.net的处理 页面具体地址。要想知道就得把FMS服务器给黑了才知道,比起写在FLASH客户端用破解软件要安全的多得多。特别是现在FLASH破解软件满天飞的时代

但sendandload和WebService的处理方式是异步的,要经过访问和返回的步骤。特别在网络不佳的时候还有等待的处理。下面的例子用sendandload来简单说明怎么处理异步的FMS验证操作。
=========FMS端========
以下为引用的内容:
function userLogin(_newClient,usrName,usrPwd){
trace(”用户登录”)
thisObj=this
//用户登录GameLogin()
var Login = new LoadVars()
Login.onLoad = function(success) {
if (success) {
if (this.usrOkFlag == “ok”) {
trace(usrName+”登录成功”)
application.acceptConnection (_newClient);
//取数据过程
_newClient.myData=this.data
网页教学网
//发送给客户端,登录成功。让它初始
_newClient.call(”init”)
}
} else {
application.rejectConnection (_newClient, “登录失败!”)
}
};
sendUrl=”http://www.xxx.com/xxx.aspx?usrName=”+usrName+”&usrPwd”+usrPwd+”&”
Login.sendAndLoad(sendUrl, Login, “GET”);
// 网页教学网
}
application.onConnect = function(newClient,usrName,usrPwd) {
userLogin(newClient,usrName,usrPwd)
};
//

大家可以看到 在登录的时候去调用一个function 把 new LoadVars() 写在该函数中。这样同时N人进入,
他会自动处理多个function。而每个function中就是一个new LoadVars。并把处理的结果调回了相应的function中达到异步的接受事件.
本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/1892

posted @ 2009-05-17 12:36  Andy  阅读(412)  评论(0编辑  收藏  举报