php 实现同一个账号同时只能一个人登录 张映 发表于 2015-01-22 分类目录: php 标签:mysql, nginx, openfire, php, redis 以前考虑过这个问题,今天实现了一下,挺快的,从研究到开发完成差不多4个小时.有点类似QQ,二台电脑登录,一台会把另一台挤掉线,并提示其他地点登录信息. 一,实现原理 1,用户在电脑A登录,session信息存放在redis当中,并将session_id存到mysql数据库中. 2,同一用户在电脑B登录,验证完用户名和密码后,…
先上帮助类: /// <summary> /// 单点登录帮助类 /// </summary> public class SSOHelper { /// <summary> /// 登录后执行 /// </summary> /// <param name="UserID">用户标识</param> public void LoginRegister(string UserID) { Hashtable hOnlin…
多个用户不能使用同一个账号同时登陆系统. 1. 添加监听器 在web.xml中添加一个监听器,这个监听器会在session创建和销毁的时候通知Spring Security. <listener> <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class> </listener> 2.添加过滤器 控制同步的session…
//登录页面 login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.…
开始 -> 运行 -> gpedit.msc -> 本地计算机 策略 -> 计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 连接 -> 将远程桌面服务用户限制到单独的远程桌面服务会话 已启用:对于同一个账号,只允许一个用户使用该账号,通过远程桌面登录.举个例子,对于Administrator账户来说,如果小明在他的电脑上登录了,小红再去她自己的电脑上登录这个账户时,小明将会被断开,然后小红…
在web应用中假如没有做会话控制,会出现这样的情况,A登录了账号,B也登录了账号,都是同样的账号,A修改了信息,B会看到修改的信息,这样的用户体验不好,B会觉得我没有修改啊,为什么信息会改变.而做会话控制后,A先登录,B再登录,那么B会把A的登录挤下线. 实现思路:采用时间戳比较 1首先用户登录时,后台是不需要做拦截的,前台把用户名和密码传到后台,后台生成JWT格式的token给前台,并以token为key,用户信息为value存入redis中 2其他url路径,过滤器会拦截请求,先判断前台是否…
ubuntu12.04管理员账户登录不了桌面,只能客人会话登录 求助!!ubuntu12.04管理员账户登录不了桌面,只能客人会话登录. 登录管理员账户时,输入密码后,一直在登录界面循环 费了好大劲啊,一上午的时间,终于搞定了,哈哈哈 ctrl+alt+f1 ,切换到tty1,输入管理员帐号和密码 sudo rm -r .Xauthority* sudo reboot   //重启 ok 可惜,不明白为什么删除.Xauthority*就ok的原因. 关于.Xauthority:startx的脚本…
录制脚本,对用户名和密码进行参数化: Action() { web_url("WebTours", "URL=http://127.0.0.1:1080/WebTours/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", LAST); web…
Debian9.5解决在root用户下启用VNC后lightdm+Xfce4只能使用root登录,其他用户无法登陆 最近在研究debian9.5 VNC的问题,当VNC使用tightVNC或tigerVNC软件时候,在root用户下通过命令vncserver启动vnc服务后会遇到进入桌面的时候,使用root可以进入XFCE桌面,使用其他用户的时候,输入用户名和密码,屏幕黑了一下,然后又返回了输入用户名密码的界面,怀疑是.Xauthority文件的权限问题,产看普通用户主目录下.Xauthorit…
打开SoftEther VPN Server Manager工具,连接上节点 1.管理虚拟HUB--管理用户--双击用户--安全策略--最大多重登录数设置为1 2.管理虚拟HUB--虚拟HUB属性--虚拟HUB管理选项--max_multilogins_per_user设置为1 以上两个地方设置后,终端用户就不能同账号同IP多终端登录…
1.实现原理其实就是自定义过滤器,然后登录时,A登录系统后,B也登录了,这个时候获取此账号之前的session给删除,然后将新的session放入到缓存里面去,一个账户对应一个有序的集合 编写自定义过滤器:KickoutSessionControlFilter.java import java.io.Serializable; import java.util.Deque; import java.util.LinkedList; import javax.servlet.ServletRequ…
天,一个老同事问起这样一个问题,起因是他们的系统由于某些原因原有的部分模块不能运行在新的jdk下,所以需要启动两个resin并使用不同jdk.由 于是要开机自动启动,因此启动的账号还需要是同一个.这样常用使用两个账号设置各自的JAVA_HOME的方法,就不可行.同事说google了一下没有 找到方法,倒是tomcat有类似的解决方案.     自从两个月前加入新公司后,就基本没有再碰过web了,下载了一个resin的包,感觉都有些陌生了.      翻了一下conf/resin.conf文件,没…
c#中防止同一账号重复登录的方法有不少,比如用数据库来记录用户登录情况.用Application来保存用户登录信息.用Cache来保存信息等. 本文为大家介绍如何利用缓存Cache方便地实现此功能. Cache与Session这二个状态对像的其中有一个不同之处,Cache是一个全局对象,作用的范围是整个应用程序,所有用户:而Session是一个用户会话对象,是局部对象,用于保存单个用户的信息. 只要把每次用户登录后的用户信息存储在Cache中,把Cache的Key名设为用户的登录名,Cache的…
原理:  假设用户在机器A登陆后,  这时用户再次在机器B登陆,会以当前会话的SessionID作为键,用户id作为值,插入dictionary集合中,集合再保存在application(保存在服务器的全局变量,多用户可以共享)变量中, 同时判断集合中是否有其他值,这里A机器已经登陆,所以会有A机器登陆的键值对,将A机器的键对应值修改为“_offline_”,以表示强制下线,  A机器的页面通过js轮询去查询dictionary集合,发现中SessionID键对应的值被修改为“_offline_…
<bean id="myRealm" class="com.sys.shiro.MyRealm" /> <bean id="sessionDAO" class="org.apache.shiro.session.mgt.eis.MemorySessionDAO"> </bean> <bean id="sessionManager" class="org.a…
通常用户登陆,如果没有特别的限定, 同一个用户可以同时登陆, 今天搞了一个东西限定一个用户不能同时登陆到一个系统上, 后登陆者会把前面登陆的踢出来.(有点像QQ,同个帐号不能在多个地方同时在线, 后面登陆成功后就把前面登陆的掉线) SQL : 两张表,一张是用户信息,另一张用来保存session -- -- 数据库: `single_user` -- CREATE TABLE IF NOT EXISTS `session` ( `username` varchar(50) default '',…
参考网址:http://www.cnblogs.com/wghao/archive/2010/12/21/1912217.html 场景: 部署了一个作业: 第一步:执行一个SSIS 包进行增量更新 第二部:更新完之后接着执行 Build Cube . 问题: 执行时第二步时失败,提示 已以用户 NT Service\SQLSERVERAGENT 的身份执行. Microsoft (R) SQL Server 执行包实用工具  Version 11.0.2100.60 for 64-bit  版…
新建账号需要root账号或sudo权限,sudo配置保存在/etc/sudoers文件. sudoers的配置格式一般为: root ALL=(ALL:ALL) ALL %sudo ALL=(ALL:ALL) ALL %sudo表示sudo组,第一个ALL表示地址,如localhost或ip等.(ALL:ALL)是可选项,表示以(用户:用户组)身份执行,如果没有这一项,则以自己账号执行命令:最后一个ALL表示所有命令(/bin/su, /bin/mkdir, /bin/chown等). 题外话:…
1.我们都知道,Oracle有两个具有dba角色的用户,分别是sys与system,他们都可以以sysdba身份登录数据库.既然system具有dba角色,为什么还分配他sysoper身份? [sys]所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改.sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户. [system]用户用于存放次一级的内部数据,如o…
string id = ConvertHelper.GetString(ds.Tables[0].Rows[0]["Uid"]);//用户ID string struserid = string.Empty;//声明一个空字符串 struserid = ConvertHelper.GetString(Cache[id]);//把Cache赋给了struserid if (struserid == string.Empty)//用if判断struserid是否为空 如果为空的话证明还没有…
解决办法 1 首先使用 localhost 登录 mysql 服务器,如果想要所用ip都可以登录本地mysql 服务器,执行以下授权命令 2 grant all privileges on *.* to '用户名'@'IP地址' identified by '密码'; 例如:想要root 用户在所有ip可以登录 grant all privileges on *.* to 'root'@'%' identified by 'abc'; 给从任意ip地址连接的用户名为root,密码为abc的用户赋…
公司有个小需求,要求账号不能同时登录在多台电脑上,就像那个微信或QQ一样,如果一台电脑登录了,原来登录的就自动退出了(网上搜索点单点登录,发现有些出入,人家是实现一次登录在多个系统间认证的) 找了些资料,最后发现还是通过数据库来验证用户是否是在其它电脑上登录最为有效了,实现也简单,最关键的部分就是用户登录时生成一个不重复的字符串,这里我用的是生成一个guid来作为标志. 第一步: 用户登录,生成一个guid,用账号查询登录列表中是否有登录的信息,如果有登录信息,则用guid更新标志,如果没有,新…
新建普通用户 ## 新建普通用户 $ adduser ubuntu $ apt-get install sudo ## 将用户加入sudo组 $ usermod -a -G sudo ubuntu 为普通用户添加公钥 $ su ubuntu $ mkdir -p ~/.ssh $ cd ~/.ssh ## 添加公钥 $ touch authorized_keys $ cat '你的公钥字符串' >> authorized_keys $ chmod 600 authorized_keys $ c…
我这里 shiro 并没有集成 springMVC,直接使用 ini 配置文件. shiro.ini [main] # Objects and their properties are defined here, # Such as the securityManager, Realms and anything # else needed to build the SecurityManager authc.loginUrl = /login.jsp authc.successUrl = /w…
首先得有一个注册的appkey和App Secret   该流程分三个步骤: 第一步:通过用户授权获取授权码Code: 第二步:用上一步获取的Code和应用密钥(AppSecret)通过Https Post方式换取Token. 第三步:获取用户Nick或者其他信息 第四步:保存session信息   一.获取授权码Code应用在要求获取用户信息的时候,首先引导用户(Redirect)到登录授权页面https://oauth.taobao.com/authorize 需要传的参数有 名称  是否必…
方式1(推荐): 1.先进入guest登入 2.通过Ctrl+Alt+F1进入命令行窗口(注释:Ctrl+Alt+F1~F6进入终端命令行,Ctrl+Alt+F7是退出终端) 3.登录root,然后进行修改 方式2: 1.重启Ubuntu,长按shift进入grup菜单 2.用方向键将光标移至Advanced options for Ubuntu,按"e"键进入编辑页面 3.将ro recovery nomodeset 改为 rw single init=/bin/bash,然后F10…
(其实以前经常用的时候,都很简单,最近一段时间不用了,再一看发现都忘记的差不多了,还是写一篇博客吧,防止下一次再在这种问题上面浪费时间) 右键此电脑,点击管理 如果没有此电脑打开文件夹 在这里右键也是一样的 在这里能打开运行的都运行最好 这三个要启用 最后记得重新启动电脑或者重新启动服务…
(其实以前经常用的时候,都很简单,最近一段时间不用了,再一看发现都忘记的差不多了,还是写一篇博客吧,防止下一次再在这种问题上面浪费时间) 使用window登录 打开属性 打开安全性 选择SQL server和window身份验证模式 登录无审核 在重新启动电脑就可以了…
从接触springboot开始,便深深的被它的简洁性深深的折服了,精简的配置,方便的集成,使我再也不想用传统的ssm框架来搭建项目,一大堆的配置文件,维护起来很不方便,集成的时候也要费力不少.从第一次使用springboot开始,一个简单的main方法,甚至一个配置文件也不需要(当然我是指的没有任何数据交互,没有任何组件集成的情况),就可以把一个web项目启动起来,下面总结一下自从使用springboot依赖,慢慢完善的自己的一个web系统的架构,肯定不是最好的,但平时自己用着很舒服. 1. 配…
消息通信组件Net分布式系统的核心中间件之一,应用与系统高并发,各个组件之间解耦的依赖的场景.本框架采用消息队列中间件主要应用于两方面:一是解决部分高并发的业务处理:二是通过消息队列传输系统日志.目前业界使用较多的消息队列组件有RabbitMQ.ActiveMQ.MSMQ.kafka.zeroMQ等,本文对系统架构之MQ Component诠释,并采用RabbitMQ作为消息队列中间件. 图1- 消息队列组件示意图 一.RabbitMQ介绍 RabbitMQ是一款基于AMQP(消息队列协议),由…