首页新闻找找看学习计划

关于网页 登录记住我!

0
悬赏园豆:5 [已解决问题] 解决于 2017-01-18 21:19

小弟做登录模块 有一事想请教!

在登录的时候 实现记住我的功能 看了很多文章都是

在客户端生成一个用户标识的Cookie!

那么这个Cookie 我可以只生成一个 用户名吗? 因为我感觉把密码也生成到浏览器非常不安全! 看了很多文章都是把用户名和密码生成到客户端!

但是我反编译了Identity框架 发现MVC自带的权限系统也并没有把密码生成到客户端!

还望大神给点意见!

狂扁小朋友的主页 狂扁小朋友 | 初学一级 | 园豆:28
提问于:2016-12-17 23:13
< >
分享
最佳答案
0

密码是绝对不允许放到客户端的,你想下这玩意你放客户端,我要是有点闲功夫,自己走个流程,我知道明文密文,往死了推也可以推断出你加密策略。而且如果你更改了密码验证策略,那么你让那些使用老密码策略的用户怎么办?

如果你要做这种功能,建议在登录的时候返回一个唯一的token,类似sessionid,同时记录用户的ip等信息供下次直接登录验证用。

收获园豆:5
Daniel Cai | 专家六级 |园豆:10374 | 2016-12-19 10:36
其他回答(8)
-1

密码加密就行了

xmj112288 | 园豆:324 (菜鸟二级) | 2016-12-18 12:18
0

Session可以么?……


念er不忘 | 园豆:204 (菜鸟二级) | 2016-12-18 16:50
-1

通常都是把用户名加密保存到客户端,没见过把密码保存在客户端的。

dudu | 园豆:39109 (高人七级) | 2016-12-18 20:47

 那下次登录判断就直接判断用户名为不为空就行了?

支持(0) 反对(0) 狂扁小朋友 | 园豆:28 (初学一级) | 2016-12-21 14:07

@狂扁小朋友: 可以通过 Request.IsAuthenticated 或者 User.Identity.IsAuthenticated 判断用户是否登录

支持(0) 反对(0) dudu | 园豆:39109 (高人七级) | 2016-12-21 16:34
0

加密!



ycyzharry | 园豆:19371 (专家六级) | 2016-12-18 23:32
0

用token来识别。数据加一张token表,用户登录后如果是记住密码的话,自动生成token存入,token与用户信息(用户ID,登录的浏览器useragent)关联并记录失效日期,然后在浏览器cookie里面放token和用户名和当前你给的唯一客户端识别。下次登录页面自己查看cookie里面的信息,有token等信息就去对比判断。然后自动登录。

盟怀部孩 | 园豆:878 (小虾三级) | 2016-12-20 11:57
0

用户名加密保存在客户端

尼哈 | 园豆:38 (初学一级) | 2016-12-20 18:14

那下次登录判断就直接判断用户名为不为空就行了?

支持(0) 反对(0) 狂扁小朋友 | 园豆:28 (初学一级) | 2016-12-21 14:07
0

把用户名加密保存在客户端就行了,密码加密保存在客户端有可能会泄露你的密码以及加密方式,可能会产生严重的后果。

perla | 园豆:261 (菜鸟二级) | 2016-12-21 10:55

那下次登录判断就直接判断用户名为不为空就行了?

支持(0) 反对(0) 狂扁小朋友 | 园豆:28 (初学一级) | 2016-12-21 14:08

@狂扁小朋友:你是说打开登录页面就会自动把账号密码填充上去吗

支持(0) 反对(0) perla | 园豆:261 (菜鸟二级) | 2016-12-21 14:09

@perla: 不是 是判断用户登录验证!

每次访问一操作 都要判断它的身份是否验证! 竟然我已经把标识保存到客户端了 我只需要判断这个标识是不是为空就行了呢! 

支持(0) 反对(0) 狂扁小朋友 | 园豆:28 (初学一级) | 2016-12-21 14:11

@狂扁小朋友: 如果是这样的话,我建议你存到服务端的session中,然后每次检查这个标识是否为空就行了。我一直以为你是前端的“记住我”。

支持(0) 反对(0) perla | 园豆:261 (菜鸟二级) | 2016-12-21 14:14
0

生成唯一的id 作为token,例如userid+时间戳,或者用uuid工具生成一个,userid做key即可,保证一个用户vs一个唯一标示就可以实现记住我。。

一瓣儿桔子 | 园豆:208 (菜鸟二级) | 2016-12-21 14:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册