修改密码的链接,点击一次就失效?有何思路可供参考?
如题所示,某站的密码找回功能,通过其邮箱,发送一个修改密码的链接,点击一次之后就失效,第二次点击直接转至登录页面。 --------------------编程问答-------------------- 比如数据库中加一列,有效时置为1,无效时置为0,当然你还可以在加个时间列,作为有效期限制点击一次之后就置为0,逻辑就自己写了 --------------------编程问答-------------------- 这个可在数据表中再弄个字段判断下呗 --------------------编程问答--------------------
每次找回密码时,也要设置为1 --------------------编程问答-------------------- 在 Sever 端监听修改密码的请求,
第一次监听到时加入 HashTable,
第二次监听到(即包含于 HashTable 中)返回登录页面! --------------------编程问答--------------------
这位仁兄见解非凡,此前我也一直是这么想。就是没有一个具体的实现思路? --------------------编程问答--------------------
兄弟,别动不动就给数据库施压,我可不想给我的数据库造成大量的垃圾数据。 --------------------编程问答-------------------- 在线等待高手指教! --------------------编程问答--------------------
兄弟,这个操作对数据库压力不大,你有多少密码要修改
如果放在内存中,难道你要将所有用户的修改密码标志都存下来吗
即使这样,你也要考虑系统重启等问题
当然如果只是在短时间内,比如30分钟,把标志放在HashTable 也行,但应这样做:
生成修改密码的链接时,将标志加入HashTable,修改链接被使用后,移除HashTable中相应的标志
这样,在修改画面判断HashTable中是否有对应的修改标志,若没有则返回登录页面 --------------------编程问答--------------------
嗯嗯嗯 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 数据库中设置 确实方便 --------------------编程问答-------------------- 用数据库的方式可能需要添加字段(如果开始没有此字段),在大多数情况下需要修改数据库表结构都不是好主意 --------------------编程问答-------------------- 最简单的方式就是在数据表中加一列标识 --------------------编程问答--------------------
特别涉及到修改ORACLE表结构,特麻烦!
所以我只想通过一个临时的容器来装载这个标识,比如HashTable,但不知其具体实现思路啊? --------------------编程问答--------------------
可不可以这样?
http://www.toyean.com/post/28.html 如何实现链接只能被点击一次 --------------------编程问答--------------------
你这个属于链接失效吧。 要判断链接的有效性
加个字段容易一些 修改密码生成一个串 存入 点击修改密码页面
判断这个串 等的话就修改密码 (修改密码之后改一个串到数据库中)
不等的话跳转首页. --------------------编程问答-------------------- 自己给设置了时间限制、
时间过来 当然失效
等待下一次的 数据 --------------------编程问答-------------------- 你不修改数据库存到XML里面吧- - 你总得找个能全局存储的地方,要不然非超时的情况下都有可能点第二次
补充:.NET技术 , ASP.NET