使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖
小论坛地址:http://rayyu.5d6d.com/thread-9444-1-1.html
正文: 首先 session 和 cache 拥有各自的优势而存在. 他们的优劣就不在这里讨论了.
以下类实现了 使用加密cookie代替session验证用户登录状态 支持 1小时/1周 有效期2种模式 (期间有新的请求则更新失效时间)
源码下载地址 http://www.370b.com/bbsx/cookie-login/cookie.rar
在自定义字符 CustomCode 不被知道的情况下 该加密过程是相对安全的.
你还可以更改其中 的 2处MD5哈希值 生成的方式、DEChar(ENChar)混淆字符 让代码更与众不同
欢迎大家拍砖
VB.NET调用方式:
VB.NET code
Dim user As New Rayyu.User() '初始化用户信息(检测当前请求用户是否登录)
If user.Online Then
Console.Write("<br />name:" & user.Name & ",online:" & user.Online & ",id:" & user.ID)
End If
Dim user2 As New Rayyu.User(1, "用户名", False) '初始化(写入新用户)
C#调用代码
C# code
Rayyu.User user = new Rayyu.User();// 初始化用户信息(检测当前请求用户是否登录)
Rayyu.User user2 = new Rayyu.User(1, "用户名", false);// 初始化(写入新用户) false 表示1小时 true表示1周
if (user.Online)
{
Console.Write("<br />name:" + user.Name + ",online:" + user.Online + ",id:" + user.Id);
}
具体代码实在太长了 帖子不够 请移步blog:http://blog.csdn.net/rayyu1989/article/details/7522332
------解决方案-------------------- cookie空间是非常有限的。
实际上保存一个后台数据库的id编号就行了,用不着在cookie中保存内容。例如购物车,你保存购物车编号就行了,而购物车内容是在数据库中持久化、在数据缓存系统中加速,根本用不着在客户端浏览器跟服务器之间来来回回地传送!
------解决方案-------------------- 谢谢分享
五一快乐!
------解决方案-------------------- 登录系统也是这样。登录时,你应该给用户发一张“通行证”,这张通行证指明了用户名,通行证有效期,用户所使用的应用系统(因为同一个用户可能用桌面与手机同时访问),最后一次刷新访问的时间、以及用户的权限(以便减少查找次数)等信息。
cookie中只需要同行者编号,明文就好了,用不着加密。
------解决方案-------------------- 支持!
------解决方案-------------------- 谢谢分享
------解决方案-------------------- 感謝分享。
------解决方案-------------------- 有兴趣
------解决方案-------------------- 大家享 才是真的享
------解决方案-------------------- 怎么没javad的调用方式?
------解决方案-------------------- 客户端禁用cookie了这种方式就毁了喔.! 呵呵
------解决方案-------------------- 学习下!
------解决方案-------------------- 客户端禁用cookie了这种方式就毁了喔.! 呵呵
------解决方案-------------------- 嗯哈嗯哈
------解决方案-------------------- 探讨 客户端禁用cookie了这种方式就毁了喔.! 呵呵
------解决方案-------------------- 谢谢! 学到了
------解决方案-------------------- sessin 有的时候 访问不到!为什么呢
------解决方案-------------------- 学习学习代码怎么用的!
------解决方案-------------------- 这个不错。。
------解决方案-------------------- 探讨