如何实现“记住我的jmeter 记住登录状态态”的功能

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
使用ExpressJS来开发的后端,用的passport中间件来管理用户的登录。
问题是每当关掉网页再打开的时候,可以自动登录,但是如果彻底关掉浏览器再打开网页,就没办法自动登录了。
彻底关掉浏览器之后,本地的cookie记录都没有了,后端会生成一个新的sessionid,求解主流网站是如何解决这个问题的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
COOKIE的有效的时间 设置长一些就可以了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
cookie没有设置过期时间。关闭浏览器cookie是自动清除的,但是服务器的session还在。再次打开浏览器的时候cookie新生成了。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
是不是浏览器自动清除cookie了?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不考虑兼容IE8的话可以试试localStorage
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
多谢各位的回答,是我忘记设置过期时间了
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App自动登录、记住我(保存登陆状态)实现
自动登录、记住我(保存登陆状态)实现:
保存在客户端
不能用session,可以用cookies保存
实现方式:
第一种方法:
可以把SessionId(GUID)放到cookies中,但
这样为了让用户下次访问我们网站时,知道这
个sessionId对应的是哪一个用户,我们还要在
数据库中建张表。
主键,UserId& SessionId& 时间
缺点:不能在两台机器上同时保存
第二种方法:
把UserId放cookies中& 密码(加密)
相对于第一种方法优点:多台机器可以保存
缺点:不安全,密码放到了客户端。
第二种方法实现代码:
页面加载读取Cookie判断,正确写入Session,转向
&protected void Page_Load(object sender,
EventArgs e)
&&&&&&&&&&&
if (!IsPostBack)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
if (Request.Cookies["cUser"] != null
&& Request.Cookies["cPwd"] !=
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
string cUser = Request.Cookies["cUser"].V
&&&&&&&&&&&&&&&&&&&
string cPwd = Request.Cookies["cPwd"].V
&&&&&&&&&&&&&&&&&&&
string sqlPwd = "";
&&&&&&&&&&&&&&&&&&&
BookShop.Model.User oneUser = bll.Exists(cUser);
&&&&&&&&&&&&&&&&&&&
if (oneUser != null)
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
#region MyRegion
&&&&&&&&&&&&&&&&&&&&&&&
//说明存在cUser
&&&&&&&&&&&&&&&&&&&&&&&
if (cPwd.Length & 2)//防止用户修改Cookie中的密码报错
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
string salt = cPwd.Substring(0, 2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&
sqlPwd = oneUser.LoginP
&&&&&&&&&&&&&&&&&&&&&&&&&&&
sqlPwd = Encrypt(sqlPwd, salt);
&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (cPwd == sqlPwd)
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//保存Session状态
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Session["user"] = oneU
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
#region MyRegion
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (Request.QueryString["returnUrl"] == null)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//登陆成功,转向首页
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Response.Redirect("/member/ShowMessage.aspx?returnUrl=" +
Server.UrlEncode("/Default.aspx") + "&msg=" +
Server.UrlEncode("自动登陆成功") + "&txt=" +
Server.UrlEncode("转向首页"));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//登陆成功,转向上次访问页面
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
string returnUrl = Request.QueryString["returnUrl"];
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Response.Redirect(returnUrl);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
#endregion
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
#endregion
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
//如果Cookies出错...清除cookie
&&&&&&&&&&&&&&&&&&&
ClearLoginCookie();
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&
//页面登陆
&protected void btnLogin_Click(object sender,
ImageClickEventArgs e)
&&&&&&&&&&&
if (!Page.IsValid)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
string uid = txtLoginId.Text.Trim();
&&&&&&&&&&&
string pwd = txtLoginPwd.Text.Trim();
&&&&&&&&&&&
BookShop.Model.User oneU
&&&&&&&&&&&
UserManager bll = new UserManager();
&&&&&&&&&&&
bool result = bll.Login(uid, pwd, out oneUser);
&&&&&&&&&&&
if (result)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
//保存session
&&&&&&&&&&&&&&&
Session["user"] = oneU
&&&&&&&&&&&&&&&
//保存Cookie状态
&&&&&&&&&&&&&&&
if (cbAutoLogin.Checked)
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
HttpCookie cUser = new HttpCookie("cUser", uid);
&&&&&&&&&&&&&&&&&&&
HttpCookie cPwd = new HttpCookie("cPwd",
Encrypt(oneUser.LoginPwd));
&&&&&&&&&&&&&&&&&&&
cUser.Expires = DateTime.Now.AddYears(10);
&&&&&&&&&&&&&&&&&&&
cPwd.Expires = DateTime.Now.AddYears(10);
&&&&&&&&&&&&&&&&&&&
Response.Cookies.Add(cUser);
&&&&&&&&&&&&&&&&&&&
Response.Cookies.Add(cPwd);
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
if (Request.QueryString["returnUrl"] == null)
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
//登陆成功,转向首页
&&&&&&&&&&&&&&&&&&&
Response.Redirect("/Default.aspx");
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
//登陆成功,转向上次访问页面
&&&&&&&&&&&&&&&&&&&
string returnUrl = Request.QueryString["returnUrl"];
&&&&&&&&&&&&&&&&&&&
Response.Redirect("/member/ShowMessage.aspx?returnUrl=" +
HttpContext.Current.Server.UrlEncode(returnUrl) +
"&msg=" + Server.UrlEncode("登陆成功") +
"&txt=" + Server.UrlEncode("转向上次访问页面"));
&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&&&&&
//登陆失败,提示错误信息
&&&&&&&&&&&&&&&
Page.ClientScript.RegisterStartupScript(this.GetType(),
Guid.NewGuid().ToString(), "alert('用户名或密码错误!');", true);
&&&&&&&&&&&
/// &summary&
/// 对密码进行MD5加密
/// &/summary&
/// &param
name="pwd"&&/param&
&returns&&/returns&
protected string Encrypt(string pwd)
&&&&&&&&&&&
return Encrypt(pwd, null);
/// &summary&
/// MD5加密方法扩展
/// &/summary&
/// &param
name="pwd"&&/param&
&returns&&/returns&
protected string Encrypt(string pwd, string salt)
&&&&&&&&&&&
//加密规则: salt+md5(salt+md5(pwd+"zfx"))
&&&&&&&&&&&
&&&&&&&&&&&
MD5 md5 = MD5.Create();//MD5加密方法
&&&&&&&&&&&
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(pwd +
&&&&&&&&&&&
buffer = puteHash(buffer);
&&&&&&&&&&&
string str = "";
&&&&&&&&&&&
for (int i = 0; i & buffer.L i++)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
str += buffer[i].ToString("X2");
&&&&&&&&&&&
&&&&&&&&&&&
if (salt == null)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
Random r = new Random();
&&&&&&&&&&&&&&&
salt = ((char)(r.Next(65, (65 + 26)))).ToString() +
((char)(r.Next(65, (65 + 26)))).ToString();
&&&&&&&&&&&
&&&&&&&&&&&
str = salt +
&&&&&&&&&&&
str = menCodes.Md5(str); //调用其他类库中
MD5实现方法,具体实现见本方法之前
&&&&&&&&&&&
return (salt + str);
/// &summary&
/// (在服务器端)清除客户端cookie
/// &/summary&
private void ClearLoginCookie()
//在服务器端清除客户端cookie
&&&&&&&&&&&
HttpCookie cUser = new
HttpCookie("cUser");//新建两个跟之前同名的cookie,用于覆盖客户端的cookie
&&&&&&&&&&&
HttpCookie cPwd = new HttpCookie("cPwd");
&&&&&&&&&&&
cUser.Expires = DateTime.Now.AddYears(-10);//设置过期时间为过期
&&&&&&&&&&&
cPwd.Expires = DateTime.Now.AddYears(-10);
&&&&&&&&&&&
Response.Cookies.Add(cUser);
&&&&&&&&&&&
Response.Cookies.Add(cPwd);
自动登录绝对不安全,有安全隐患
进入网站后,对于关键步骤再次要求用户输入密码
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。后使用快捷导航没有帐号?
只需一步,快速开始
查看: 435|回复: 1
怎样让浏览器记住我的登录状态?
主题帖子积分
精华120注册时间
让浏览器记住登录状态,就是让Cookie在客户端保存您的登录信息(前提是浏览器设置为启用cookie),在用户下次浏览时不再需要重复登录,省去了用户每次都要登陆的繁琐,非常方便。
那么,如何让客户端的Cookie记住我的登录状态呢?其实,多数浏览器的默认值为&Cookie已经启用&,登录时,只要正确填写您的用户名称和密码,点击&登录&即可。系统为您设置了365天的“登录状态”记忆,即365天内,只要您不更新浏览器,则365天内不再重复登录。如果还是无法记住我的登录状态,怎么办呢?可能的原因是您的浏览器已经设置为&禁用Cookie&了。
怎样开启Cookie呢?不同浏览器的设置略有差别,本文就几种常用浏览器的Cookie启用方法做个简单的介绍。
☆ IE6、360浏览器
1、点击“工具”菜单。
2、选择 “Internet” 选项。
3、点击“隐私”标签。
4、点击&高级&按钮。
5、在&高级隐私策略设置&窗口中去掉&覆盖自动cookie处理&前的&√&。
6、点击&确定&-&确定&按钮关闭&Internet 选项&窗口。
1、点击&工具&菜单。如果您没找到该菜单,请按键盘上的 Alt 键来显示菜单。
2、选择 “Internet” 选项。
3、点击“隐私”标签。
4、点击&高级&按钮。
5、在&高级隐私策略设置&窗口中去掉&替代自动cookie处理&前的&√&。
6、点击&确定&-&确定&按钮关闭&Internet 选项&窗口。
☆ 火狐浏览器Firefox
1、单击浏览器顶部的&Tools&(工具)菜单,并选择&Options&(选项)打开。
2、单击&Privacy&(隐私)选项。
3、在&隐私&选项下中有&历史&一栏,在&Firefox将会&后面的下拉菜单中选择&记录历史&或&使用自定义历史记录设置&选项。
4、如果选择了&记录历史&,则单击&确定&即可;如果选择了&使用自定义历史记录设置&,则务必在&接受第三方Cookie&前的选择框中打&√&,最后单击&确定&即可。
☆傲游3(Maxthon)
1、单击浏览器左上角的笑脸&工具&按钮或顶部菜单中的&工具&,并选择&选项&,打开傲游选项卡。
2、点击最下端的&高级&选项。
3、勾选 内容选区 中的&允许接受站点Cookie&。
4、点击关闭,退出即可。
☆ Opera 中文浏览器
1、点击浏览器窗口顶部的&工具&菜单。(如果首次安装没有该菜单栏,可点击窗口左上角的&Opera&标识按钮,点击下拉菜单下端的&显示菜单栏&选项即可出现。)
2、在&工具&菜单中点击&首选项&,打开&首选项&窗口。
3、点击&高级&选项卡,并点击&Cookie&选项,点选&接受Cookie&选项。
4、点击下面的&确定&按钮,即可完成设置。
☆ 360极速浏览器
1、点击浏览器顶部工具栏最右端的&自定义和控制360极速浏览器&按钮(扳钳状按钮)。打开下拉菜单。
2、点击并打开&选项&卡,展示出&基本选项&、&个人资料&、&高级选项&、&更多设置&选项。
3、点击并打开&更多设置&选项。
4、在&其他&列项栏中,去掉&退出浏览器时自动清除浏览器痕迹&前的&√&,关闭窗口即可。
5、如果需要选择勾选&退出浏览器时自动清除浏览器痕迹&项,那么,再点击该选项后面的&设置自动清理&按钮,打开&选择要清除的内容&小窗口,去掉&删除Cookie和其他网站数据&前的&√&,关闭小窗口和大窗口即可。
☆ 搜狗高速浏览器
1、点击“工具”菜单,打开下拉菜单。
2、点击菜单中的“搜狗高速浏览器选项”选项,打开选项卡。
3、点击“搜狗高速浏览器选项”卡中左侧竖栏中的“隐私保护”选项,并去掉右侧栏中所有选项前的“√”,即不选任何项,使用默认值。
4、点击最下行的“确定”。
6、点击菜单最下方的“Internet选项”,打开“Internent属性”卡。
7、点选“隐私”选项卡,再点击选项卡中的“高级”按钮,打开“高级隐私策略设置”卡。
8、勾选“覆盖自动cookie处理”和“总是允许会话cookie”,确定即可。
五一劳动勋章
五一劳动勋章
国庆66周年纪念勋章
添加安全提问领取安全达人勋章
十年纪念勋章
验证邮箱获得十年纪念勋章
五一劳动勋章
服务我国公益事业,将乐彩进行到底
&&&本社区所有言论,纯属发表者个人意见,与乐彩网立场无关如何实现“记住我的登录状态”的功能
如何实现记住我的登录状态?
开始是把账号和密码一起存放到浏览器中的cookie中,在每次访问时,实现账号和密码登录验证。但我觉得这种方法麻烦,而且存放了密码在cookie中,就算加密的,看起也不爽?
不知道OSC是怎么实现 “记住我的登录状态”的功能?有什么好的方法。
我看Laravel自带的用户登陆验证是在user表有个remember_token字段,跟一楼说的一样
HTML5中可以使用localStorage代替cookie
分为两步,记住客户登录id、密码,放在cookie,就是第一种解决方案,拿这个去验证
第二种就是加载页面ajax验证一次,就是自动登录一次,那是不用记录密码,只记录混合token
原理都差不多
把一串和用户有关的信息,如权限,用户ID,之类的,再加上系统私钥,进行加密,MD5,SHA1之类的都可以,登陆的时候对cookies内容进行验证,如果符合,就允许登陆,至于过期时间,设置一个过期时间就好&&
都是放入cookie中,
为了确保安全
把用户密码放在Cookie里还是有风险的,为了确保安全,只把用户名放在Cookie里,用户进行需要登录的以后的操作时让其登录就好了!
信息放到cookies里,不过这样相对不怎么安全。最好还是用 token吧
k/v形式,把cookie当key.value到服务器上面,一个token可以无限扩展.
否则就得用浏览器自带的数据库功能,不过目前Ie678太垃圾,没这数据库的功能.
其它都浮云
引用来自“atearsan”的答案 跟一楼差不多...生成一串唯一加密过的字符存在cookie中...& 比如啊 用户名/过期时间/用户id/登录时间 等混合加密
反正七七八八的东西放一起存cookie 别人搞不懂 你自己能解出来 &哈哈
同意这个答案 这里有篇文章可以看一下
/articles/5353.html}

我要回帖

更多关于 js记住登录状态 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信