通过Cache简单判断用户是否已经登录。

private void Login_Click(object sender, System.EventArgs e) 

  // 作为唯一标识的Key,应该是唯一的,这可根据需要自己设定规则。 
  // 做为测试,这里用用户名和密码的组合来做标识;也不进行其它的错误检查。

// 生成Key 
  string sKey = UserName.Text + "_" + PassWord.Text; 
  // 得到Cache中的给定Key的值 
  string sUser = Convert.ToString(Cache[sKey]); 
  // 检查是否存在 
  if (sUser == null || sUser == String.Empty) 
  { 
    // Cache中没有该Key的项目,表名用户没有登录,或者已经登录超时 
    // 注意下面使用的TimeSpan构造函数重载版本的方法,是进行是否登录判断的关键。 
    TimeSpan SessTimeOut = new TimeSpan(0,0,System.Web.HttpContext.Current.Session.Timeout,0,0); 
    HttpContext.Current.Cache.Insert(sKey,sKey,null,DateTime.MaxValue,SessTimeOut, 
      System.Web.Caching.CacheItemPriority.NotRemovable,null); 
    Session["User"] = sKey; 
    // 首次登录,您可以做您想做的工作了。 
  } 
  else 
  { 
    // 在 Cache 中发现该用户的记录,表名已经登录过,禁止再次登录 
   return; 
  } 
}

通过Cache简单判断用户是否已经登录。

时间: 2024-10-12 20:51:27

通过Cache简单判断用户是否已经登录。的相关文章

Struts2重新学习之自定义拦截器(判断用户是否是登录状态)

拦截器 一:1:概念:Interceptor拦截器类似于我们学习过的过滤器,是可以再action执行前后执行的代码.是web开发时,常用的技术.比如,权限控制,日志记录. 2:多个拦截器Interceptor连在一起组成了Interceptor栈.拦截器是AOP面向切面编程的一种实现,具有热插拔的效应. 3:Struts2拦截器,每个拦截器类只有一个对象实例,即采用了单利模式.所有引用这个拦截器的action都共享着一拦截器类的实例. 拦截器和过滤器的区别 1:拦截器和过滤器的概念非常类似 2:

如何解决每次向后台发起请求时判断用户是否处于登录状态?

事件起因: 小x向我反应用户在我开发的系统中,在其中一个功能上待了很长时间,当用户跳转到其他界面上时,突然就掉线了. 他告诉我应当在用户每次向后台索取数据的时候进行用户登录状态的检验. 用户的登录状态其实是个比较繁琐的过程.按照业务的要求,当用户点击登录界面的保存密码按钮时,在本地的cookie进行长达七天的保存.当用户没有点击保存密码的时候,主要依靠session来进行保存. session与cookie: 这两者之间的关系,网上有太多内容介绍了.简单来说:session放在服务器端.当浏览器

python简单实现用户表单登录

实现简单的用户表单验证登录 user="desperado" pwd="123456" s=0 for i in range(10): if s < 3: username = input("用户名:") password = input("密码:") if username == user and password == pwd: print("welcome,login successful")

小试牛刀(1)简单实现用户添加和登录(文件版)

#!/usr/bin/env python import shelve    #导入shelvel模块 print ''' 1.Add User   #输入1添加用户  2.Login System    #输入2进行登录 --------------------------------- ''' memu = input('Please Select:') #提示输入对应的操作 if memu == 1:    #判断输入等于1,则进行添加用户 print ''' Function:Add U

装饰器2_根据认证来源判断用户和计算登录时间

import time def timmer(func): def wrapper(*args,**kwargs): print("----->from timmer_wrapper") start_time = time.time() reg = func(*args,**kwargs) stop_time = time.time() run_time = stop_time - start_time print('run time is %s' % run_time) ret

我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)

我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录) 2014年09月05日 ⁄ 综合 ⁄ 共 4677字 ⁄ 字号 小 中 大 ⁄ 评论关闭 看了一下官网,没有找到关于如何控制同一用户只能一处登录的介绍,网上也没有找到相关的文章.可能有些人会记录用户的登录信息,然后达到踢出用户的效果.这里介绍一个更简单的方法. 如果我们跟shiro的源码,我们可以看到.当用户登录成功 后,shiro会把用户名放到session的attribute中,key为 DefaultSubjectC

django用户认证系统——登录4

用户已经能够在我们的网站注册了,注册就是为了登录,接下来我们为用户提供登录功能.和注册不同的是,Django 已经为我们写好了登录功能的全部代码,我们不必像之前处理注册流程那样费劲了.只需几分钟的简单配置,就可为用户提供登录功能.接下来就来看看如何使用内置的登录功能. 引入内置的 URL 模型 Django 内置的登录.修改密码.找回密码等视图函数对应的 URL 模式位于 django.contrib.auth.urls.py 中,首先在工程的 urls.py 文件里包含这些 URL 模式.打开

分步引导中,Js操作Cookie,实现判断用户是否第一次登陆网站

上一篇介绍了分布引导插件IntroJs的使用,本篇介绍通过Js操作cookie的方法. 分步引导的功能只适合与第一次登陆网站的新用户,不能每次登陆都提示分布引导,那么如何判断用户是否第一次登录网站呢? 通过Js操作浏览器Cookie,方法有很多种,大多数是通过js获取到cookie存储的键值对,然后找到需要的哪一个键,在判断值,但是这种方案比较繁琐,现在给出一种新的想法.手动设置一个字段到cookie中,这样每次只判断是否有这个字段即可.代码如下: 1 <script type="text

java采用DateFormat日期格式化方法判断用户今天是否第一次登录(比较简单)

一.描述 1.数据库中有一个date类型的last_login_time字段,即用户每次登录都会更新该字段: 2.在登录时使用jdbcTemplate的queryForObject方法,取出last_login_time字段的值以Date类型返回,并用DateFormat格式化该时间 3.获取系统当前时间,并用DateFormat格式化,比较两个时间是否相等就可以判断该用户今天是否第一次登录. 上次我写的判断用户当天是否第一次登录的方法采用字符串的比较方式,使用起来很繁琐,效率也不高,因此今天进