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

2007-11-04 08:26:54  来源

WebjxCom提示:如做到 FLASH 输入账号 密码去取得数据库中的数据, 目前需要.net 或php做中转。方法有sendandload和WebService较为常用(目前AS2AS3本人不熟不知道能否直接与数据沟通)。 但大家假想,如果用FLASH客户端直接去从

如做到 FLASH 输入账号 密码去取得数据库中的数据, 目前需要.net 或php做中转。方法有sendandload和WebService较为常用(目前AS2  AS3本人不熟不知道能否直接与数据沟通)。 但大家假想,如果用FLASH客户端直接去从取。如果页面地址暴露将会有什么后果。。不能想都知道。
最理想的处理方法则是 用FLASH 把账号,密码传给FMS,让FMS去做和数据库登录验证的工作。这样才能达到最安全的机制.如下图的验证机制。
FMS异步与其他web语言达成异步验证_网页教学网webjx.com整理
从图上可以看出,验证的主要还是由.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中达到异步的接受事件.
更多