首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖解决思路

2012-06-11 
使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖小论坛地址:http://rayyu.5d6d.com/thread-

使用加密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 ThenConsole.Write("<br />name:" & user.Name & ",online:" & user.Online & ",id:" & user.ID)End IfDim 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 有的时候 访问不到!为什么呢
[解决办法]
学习学习代码怎么用的!
[解决办法]
这个不错。。
[解决办法]
探讨


我是用他来实现登录判断哦 请看完好嘛

引用:

登录系统也是这样。登录时,你应该给用户发一张“通行证”,这张通行证指明了用户名,通行证有效期,用户所使用的应用系统(因为同一个用户可能用桌面与手机同时访问),最后一次刷新访问的时间、以及用户的权限(以便减少查找次数)等信息。

cookie中只需要同行者编号,明文就好了,用不着加密。


[解决办法]
正好需要 
还带补充的
[解决办法]
有水平,不错不错
[解决办法]
正好需要
还带补充的 

[解决办法]
SESSION还在的 会把sessionID放在URL里面作为querystring 服务器获取到之后再在处理管道中把这个sessionID拿掉返回正常的URL
探讨

引用:

客户端禁用cookie了这种方式就毁了喔.! 呵呵



session不一样也毁了?

[解决办法]
其实需要时间戳。。如果改了密码。把时间更改下和cookie的时间比对,错误跳转到登录页面,重新登录
[解决办法]
不错学习一下
[解决办法]
时间戳是需要的。
[解决办法]
好东西学习一下,多谢楼主
[解决办法]
我的好好学习一下
[解决办法]
谢谢分享
[解决办法]
怎么是VB啊,我还以为是C#的呢
[解决办法]
谢谢分享!
[解决办法]
谢谢分享
[解决办法]
为什么呢
[解决办法]
探讨
cookie空间是非常有限的。

实际上保存一个后台数据库的id编号就行了,用不着在cookie中保存内容。例如购物车,你保存购物车编号就行了,而购物车内容是在数据库中持久化、在数据缓存系统中加速,根本用不着在客户端浏览器跟服务器之间来来回回地传送!

[解决办法]
探讨

支持!

[解决办法]
看大家的评论才是件很爽的事情
[解决办法]
Session本质上就是Cookie, 通过一个Http-Only的Cookie保存服务器端Session的一个key
[解决办法]
对cookie的解释不错
[解决办法]
探讨

SESSION还在的 会把sessionID放在URL里面作为querystring 服务器获取到之后再在处理管道中把这个sessionID拿掉返回正常的URL
引用:

引用:

客户端禁用cookie了这种方式就毁了喔.! 呵呵



session不一样也毁了?

[解决办法]
看看了 谢了

热点排行