3

我正在研究一种身份验证方法,我有 2 个名为“用户名”和“通过”的文本字段,我想这样做,以便当用户输入他们的用户名和密码时,该信息会存储到一个文本文件中。因此,当他们重新登录时,它会从该文本文件中读取用户名和密码以进行登录。我该怎么做?感谢:D

4

2 回答 2

5

可以保存到文本文件(使用 AIR 中的 File 类),但这确实不是一个好方法。相反,您应该检查 SharedObject 类

快速示例:

 var sharedObject:SharedObject = SharedObject.getLocal("userInfo"); //this will look for a shared object with the id userInfo and create a new one if it doesn't exist

一旦您掌握了 sharedObject 的句柄

sharedObject.data.userName = "Some username";
sharedObject.data.password= "Some password"; //it's really not a good idea to save a password like this
sharedObject.flush(); //saves everything out

现在在代码的其他地方取回您的数据

var sharedObject:SharedObject = SharedObject.getLocal("userInfo");
trace(sharedObject.data.userName);
trace(sharedObject.data.password);

此对象本地保存到用户计算机。它与浏览器 cookie 非常相似。

现在以纯文本形式保存该对象的密码并不是一个好主意。更好的计划是验证服务器上的登录信息并在此对象中存储某种会话 ID。

在伪代码中:

function validateLogin(){
    var sessionID = server->checkLogin(username, password); //returns a string if authed, nothing if not
    if(sessionID){
         sharedObject->sessionID = sessionID;
    } else {
        //bad login
    }
}

更多阅读:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html

http://www.republicofcode.com/tutorials/flash/as3sharedobject/

于 2012-04-09T21:57:30.553 回答
0

理想情况下,您不能使用 flash 编写文件(除非它是 AIR 应用程序)。FLash 应该在浏览器上运行,因此允许它访问系统资源(如您的文件系统)是一种安全威胁。但是,AIR 是一种将 Flash 作为桌面应用程序运行的技术,在这种情况下,它可以写入文件。

共享对象是一种闪存可以在浏览器环境中保存一些临时数据的方法,但是,如果您清除缓存并删除浏览器文件,我想它也会被刷新。

于 2012-04-10T14:40:37.900 回答