`
android_mylove
  • 浏览: 399442 次
社区版块
存档分类
最新评论

Cookies+Session保存用户登陆状态

 
阅读更多

Cookies+Session保存用户登陆状态

Java 2008-10-17 10:26 阅读345评论0
字号:

最近在一个项目中,之前的验证方式是纯的Session方式,虽然设置了超时时间,但是好像登陆状态经常会动不动就丢失,导致客户抱怨不断,今天仔细的考虑了一下,决定采用Cookies跟Session结合的方式来判断用户的登陆状态,代码如下:

1、用户登陆代码
HttpContext.Current.Session.Abandon(); //清空当前所有的Session
HttpCookie Cookies = new HttpCookie("AdminInfo");
Cookies.Expires = DateTime.Now.AddHours(-1); //设置过期时间,即强制删除先前的Cookie
HttpContext.Current.Response.AppendCookie(Cookies);

HttpContext.Current.Session.Add("AdminID", Dt.Rows[0]["ID"].ToString());
HttpContext.Current.Session.Add("AdminName", Dt.Rows[0]["UserName"].ToString());
Cookies = new HttpCookie("AdminInfo");

Cookies.Values["AdminID"] = Dt.Rows[0]["ID"].ToString();
Cookies.Values["AdminName"] = Dt.Rows[0]["UserName"].ToString();
Cookies.Expires = DateTime.Now.AddHours(1);//可不设置或者设置成0(代表在关闭浏览器后,立即失效)
HttpContext.Current.Response.AppendCookie(Cookies);

2、登陆状态判断
if (System.Web.HttpContext.Current.Request.Cookies["AdminInfo"] == null)
{
//Cookies已经丢失,这里将重定向到登陆页面
}
if (System.Web.HttpContext.Current.Session["AdminID"] == null)
{
System.Web.HttpContext.Current.Session["AdminID"] = System.Web.HttpContext.Current.Request.Cookies["AdminInfo"]["AdminID"].ToString();
}
string AdminID=System.Web.HttpContext.Current.Session["AdminID"].ToString();
if (AdminID== "")
{
//假如用户ID值不存在,跳转到登陆页面
}
else
{
//根据用户ID获取该管理员的相关信息,例如权限值等
HttpContext.Current.Session.RemoveAll();
HttpContext.Current.Session.Timeout = 300;
HttpContext.Current.Session["UserName"] ="";
}

问题:
1、为什么不全部使用Cookies作为用户登陆信息的保存值?
初步考虑到Cookies值有大小的限制,有些属性也不应该作为Cookies存放到客户端,这里最好对Cookies进行一个加密的操作,保证数据的安全。
2、Session为何即使设计了20分钟,但往往会马上就过期了?
初步估计是因为Session是根据服务器的信息来的,是存放在服务器端的内存中的,当服务器端内存一吃紧在做释放工作之后,用户信息当然会丢失了。

声明本文转自: http://blog.163.com/lao12qi12345@126/blog/static/117915512008917102643525/

分享到:
评论

相关推荐

    c#实现cookie和session的登陆实例

    本实例将探讨如何在C#环境下利用Cookie和Session来处理用户登录状态。 首先,我们要理解Cookie和Session的基本概念。Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并存储在本地。每次用户访问同一网站时...

    jsp cookie+session实现简易自动登录.docx

    Cookie 可以用来跟踪用户的信息,例如登录状态等。 3. **Session**: 是一种服务器端存储技术,用于存储特定用户的会话信息。当用户访问网站时,服务器会为该用户创建一个唯一的会话ID,并将其存储在用户的Cookie中...

    ASP.NET状态管理(Cookies,Session,ViewState,Application...)

    它们用于跟踪用户的会话信息,例如登录状态、购物车内容等。每个Cookie都有一个唯一的名称,可以存储不超过4KB的数据。由于数据存储在客户端,所以对于敏感信息,应加密后再存储。此外,可以通过设置过期时间控制...

    Session和Cookies的区别

    在Web开发中,Session 和 Cookies 是两种常见的用于跟踪用户会话的技术。尽管它们都能实现会话跟踪的功能,但在具体的应用场景和实现机制上存在显著差异。本文将从多个角度对比分析这两种技术的不同之处,并探讨它们...

    JAVA通过Session和Cookie实现网站自动登录

    1. **用户登录**: - 用户提交用户名和密码。 - 服务器验证用户名和密码的正确性。 - 验证成功后,服务器创建一个会话,并在服务器端保存用户信息(如用户名)。 - 如果用户选择了“记住我”选项,则服务器还会...

    httpclient如何保持session会话模拟登录后的操作

    在Web应用中,当用户登录后,服务器会为该用户创建一个session对象,并将用户的一些信息(如登录凭证)存储在session中。客户端通过一个称为session ID的唯一标识与服务器保持联系。每次请求时,客户端需要将这个ID...

    Session cookies

    Session cookies是维持Web应用程序中用户状态的关键技术之一。通过合理的管理和配置,可以有效地利用Session来增强用户体验,同时确保数据的安全性和隐私保护。理解Session的工作原理及其与HTTP协议、Cookie之间的...

    Session与Cookies

    Session和Cookies是Web开发中两种重要的用户状态管理技术,它们在维持用户会话、个性化体验以及安全性方面扮演着关键角色。下面将详细讲解这两种技术的工作原理、特点以及它们的应用场景。 **Session** Session是...

    session and cookies.ppt

    在ASP.NET中,Session和Cookies是两种常见的用户状态管理机制,它们用来跟踪用户在网站上的行为和信息。本文将深入探讨这两个概念以及相关的知识点。 首先,让我们了解什么是Session。Session是一种服务器端的状态...

    asp.net 保存用户信息.docx

    结合使用Cookies和Session,可以在用户登录后,将SessionID保存到Cookie中。这样,即使用户关闭浏览器并重新打开,只要Cookie中的SessionID未过期,服务器仍能根据SessionID找到用户的Session数据,从而保持登录状态...

    Cookie&Session;

    Session是服务器端保存用户状态的一种方式。当用户登录后,服务器会为该用户创建一个唯一的Session ID,并将其通过Cookie发送给浏览器。浏览器在后续请求时携带这个Session ID,服务器根据ID找到对应用户的会话数据...

    用户登录功能(cookie实现)

    在ASP.NET框架中,用户登录功能是Web应用的基础部分,主要目的是验证用户的身份并管理他们的会话。在这个场景中,我们关注的是通过Cookie来实现这一功能。Cookie是一种在客户端存储小量信息的数据机制,通常用于跟踪...

    cookle和session的区别

    ### Cookie与Session的区别及其在用户登录中的应用 #### 前言 在现代Web开发中,维护用户会话状态是一项非常重要的任务。其中,Cookie和Session是两种最常用的技术手段,用于跟踪用户的浏览活动和存储用户的信息。...

    session和cookies的定义用法

    - **用途**:Cookie常用于记录用户的偏好设置、登录状态、浏览历史等,例如,一个简单的计数访客访问次数的例子: ```php if (!isset($_COOKIE['visited'])) { setcookie("visited", "1", time()+86400, "/"); ...

    ajax+ASP 调试ASP语句小程序,可帮助调试asp,如查看session cookies appliation

    1. **登录验证**:在处理用户登录时,可以使用该工具检查session中的登录状态,确保用户身份正确无误。 2. **购物车功能**:在电子商务网站中,调试cookies可以确认购物车内容是否正确存储和加载。 3. **全局设置*...

    Cookies 和 Session的详解及区别

    Cookies 和 Session 都是用来跟踪浏览器用户身份的会话方式,都是为了确定用户的身份和保持会话状态。 Cookies 和 Session 的区别 Cookies 和 Session 的主要区别在于数据的存储位置,Cookies 数据保存在客户端,...

    Django Session和Cookie分别实现记住用户登录状态操作

    在Web开发中,保持用户登录状态是一个常见的需求。在Django框架中,有两种主要方法可以实现这一功能:Django Session和Cookie。理解这两者的工作原理和如何在Django中使用它们至关重要。 首先,让我们深入了解...

    php_session与cookie会员登录验证实例

    Session用于在服务器端存储用户信息,确保安全性,而Cookie则可以用来控制用户在一段时间内的登录状态。实际应用中,应考虑使用更安全的数据库连接方法、避免SQL注入等安全问题,并优化用户体验,例如通过Cookie自动...

    Application session cookies用法

    Session 对象则用于保存每个用户独有的数据。这些数据存储在服务器内存中,直到用户会话结束(默认情况下,超时时间为20分钟)。Session 提供了一种安全的方式存储用户特定的信息,例如购物车内容或用户偏好。然而,...

    login.cs记录用户登录信息以及退出清空session

    - **用途**:该代码段使用了 `Cookie` 来存储一些必要的信息,例如用户登录 ID 和公司 ID,并在登录时进行验证。 - **示例**: ```csharp static HttpCookie cookLoinId { get { return HttpContext.Current....

Global site tag (gtag.js) - Google Analytics