当前位置:编程学习 > C#/ASP.NET >>

修改密码的链接,点击一次就失效?有何思路可供参考?

如题所示,某站的密码找回功能,通过其邮箱,发送一个修改密码的链接,点击一次之后就失效,第二次点击直接转至登录页面。 --------------------编程问答-------------------- 比如数据库中加一列,有效时置为1,无效时置为0,当然你还可以在加个时间列,作为有效期限制
点击一次之后就置为0,逻辑就自己写了 --------------------编程问答-------------------- 这个可在数据表中再弄个字段判断下呗 --------------------编程问答--------------------
引用 1 楼 yaazz 的回复:
比如数据库中加一列,有效时置为1,无效时置为0,当然你还可以在加个时间列,作为有效期限制
点击一次之后就置为0,逻辑就自己写了


每次找回密码时,也要设置为1 --------------------编程问答-------------------- 在 Sever 端监听修改密码的请求,
第一次监听到时加入 HashTable,
第二次监听到(即包含于 HashTable 中)返回登录页面! --------------------编程问答--------------------
引用 4 楼 yixianggao 的回复:
在 Sever 端监听修改密码的请求,
第一次监听到时加入 HashTable,
第二次监听到(即包含于 HashTable 中)返回登录页面!

这位仁兄见解非凡,此前我也一直是这么想。就是没有一个具体的实现思路? --------------------编程问答--------------------
引用 1 楼 yaazz 的回复:
比如数据库中加一列,有效时置为1,无效时置为0,当然你还可以在加个时间列,作为有效期限制
点击一次之后就置为0,逻辑就自己写了

兄弟,别动不动就给数据库施压,我可不想给我的数据库造成大量的垃圾数据。 --------------------编程问答-------------------- 在线等待高手指教! --------------------编程问答--------------------
引用 4 楼 yixianggao 的回复:
在 Sever 端监听修改密码的请求,
第一次监听到时加入 HashTable,
第二次监听到(即包含于 HashTable 中)返回登录页面!

引用 6 楼 guohuafox 的回复:
引用 1 楼 yaazz 的回复:

比如数据库中加一列,有效时置为1,无效时置为0,当然你还可以在加个时间列,作为有效期限制
点击一次之后就置为0,逻辑就自己写了

兄弟,别动不动就给数据库施压,我可不想给我的数据库造成大量的垃圾数据。

兄弟,这个操作对数据库压力不大,你有多少密码要修改
如果放在内存中,难道你要将所有用户的修改密码标志都存下来吗
即使这样,你也要考虑系统重启等问题

当然如果只是在短时间内,比如30分钟,把标志放在HashTable 也行,但应这样做:
生成修改密码的链接时,将标志加入HashTable,修改链接被使用后,移除HashTable中相应的标志
这样,在修改画面判断HashTable中是否有对应的修改标志,若没有则返回登录页面 --------------------编程问答--------------------
引用 3 楼 peter200694013 的回复:
引用 1 楼 yaazz 的回复:
比如数据库中加一列,有效时置为1,无效时置为0,当然你还可以在加个时间列,作为有效期限制
点击一次之后就置为0,逻辑就自己写了


每次找回密码时,也要设置为1


嗯嗯嗯 --------------------编程问答--------------------
引用 3 楼 peter200694013 的回复:
引用 1 楼 yaazz 的回复:
比如数据库中加一列,有效时置为1,无效时置为0,当然你还可以在加个时间列,作为有效期限制
点击一次之后就置为0,逻辑就自己写了

每次找回密码时,也要设置为1

+1 --------------------编程问答-------------------- 数据库中设置 确实方便 --------------------编程问答-------------------- 用数据库的方式可能需要添加字段(如果开始没有此字段),在大多数情况下需要修改数据库表结构都不是好主意 --------------------编程问答-------------------- 最简单的方式就是在数据表中加一列标识 --------------------编程问答--------------------
引用 12 楼 amandag 的回复:
用数据库的方式可能需要添加字段(如果开始没有此字段),在大多数情况下需要修改数据库表结构都不是好主意

特别涉及到修改ORACLE表结构,特麻烦!
所以我只想通过一个临时的容器来装载这个标识,比如HashTable,但不知其具体实现思路啊? --------------------编程问答--------------------
可不可以这样?

http://www.toyean.com/post/28.html 如何实现链接只能被点击一次 --------------------编程问答--------------------
引用 15 楼 gftjsc 的回复:
可不可以这样?

http://www.toyean.com/post/28.html 如何实现链接只能被点击一次


你这个属于链接失效吧。  要判断链接的有效性 

加个字段容易一些 修改密码生成一个串 存入 点击修改密码页面
判断这个串  等的话就修改密码 (修改密码之后改一个串到数据库中)
不等的话跳转首页. --------------------编程问答-------------------- 自己给设置了时间限制、

时间过来  当然失效 

等待下一次的 数据 --------------------编程问答-------------------- 你不修改数据库存到XML里面吧- - 你总得找个能全局存储的地方,要不然非超时的情况下都有可能点第二次
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,