Flex使用cookie保存登状态

flex系统要实现普通html系统刷新页面保留登录信息,一个方法是借用js来操作cookie来实现,下边是一个实现的例子:

第一步:在主index.html里边加上两个js方法

        //获取cookie内容
            function GetCookie(name)  
            {  
                var arr = document.cookie.match(new RegExp("(^|)"+name+"=([^;]*)(;|$)"));    
                if(arr != null)  
                {  
                    return unescape(arr[2]);  
                }  
            }
            
            //设置cookie以及失效时间
            //这是有设定过期时间的使用示例: 
            //s20是代表20秒 
            //h是指小时,如12小时则是:h12 
            //d是天数,30天则:d30
            //比如setCookie("name","hayden","s20");
            function SetCookie(name,value,time)
            { 
             var strsec = getsec(time); 
             var exp = new Date(); 
             exp.setTime(exp.getTime() + strsec*1); 
             document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
            } 

            function getsec(str)
            { 
               var str1=str.substring(1,str.length)*1; 
               var str2=str.substring(0,1); 
               if (str2=="s")
               { 
                 return str1*1000; 
               }
               else if (str2=="h")
               { 
                return str1*60*60*1000; 
               }
               else if (str2=="d")
               { 
                return str1*24*60*60*1000; 
               } 
            } 

第二步:在Flex程序里加上调用js的方法

       /**
             * 根据名称获取cookie中对应的内容
             * */
            public function getCookie(name:String):String 
            { 
                var jsFunction:String = "GetCookie"; 
                var value:String = "";
                if(ExternalInterface.available) 
                { 
                    value = ExternalInterface.call(jsFunction,name); 
                } 
                return value;
            } 
            /**
             * 设置cookie内容
             * */
            public function setCookie(key:String,value:String):void 
            { 
                var jsFunction:String = "SetCookie"; 
                if(ExternalInterface.available) 
                { 
                    ExternalInterface.call(jsFunction,key,value); 
                } 
            } 

在登陆成功以后,把用户名和密码保存到cookie(为了安全,密码应该加密保存,这里就不写了)

//登陆成功 ,写入cookie
setCookie("username",username_id.text);
setCookie("password",password_id.text);

第三步:每次在主程序加载完的时候,读取一下cookie里用户名和密码的内容,如果不为空,就自动执行登陆

username_id.text = getCookie("username");
password_id.text = getCookie("password");
if(username_id.text && password_id.text)
{
     doLogion();
}

记得在退出系统的时候,也清空一下cookie,就OK啦!

//清空cookie
FlexGlobals.topLevelApplication.setCookie("username","");
FlexGlobals.topLevelApplication.setCookie("password","");

 

转载于:https://www.cnblogs.com/gongchen/p/3145901.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值