我正在研究一种身份验证方法,我有两个名为'username'和'pass'的文本字段 我想这样做,以便当用户输入他们的用户名和密码时,该信息将存储到文本文件中。因此,当他们重新登录时,它会从该文本文件中读取用户名和密码以进行登录。 我怎样才能做到这一点? 谢谢:D
答案 0 :(得分: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/
答案 1 :(得分:0)
使用SharedObject
查看此链接:
http://www.flash-db.com/Tutorials/savingAS3/savingData.php?page=3
http://drawlogic.com/2008/01/10/howto-sharedobjects-for-local-storage-as3/
答案 2 :(得分:0)
理想情况下,您无法使用Flash编写文件(除非它是AIR应用程序)..FLash应该在浏览器上运行,因此允许它访问系统资源(如文件系统)是一种安全威胁。但是,AIR是一种将Flash作为桌面应用程序运行的技术,在这种情况下,它可以编写文件。
共享对象是一种flash可以在浏览器环境中保存一些临时数据的方法,但是,如果你清除缓存并删除浏览器文件,我想它也会被刷新。