通用权限管理系统组件 中后一个登录的把前一个登录的踢掉功能的实现
2013-05-09 12:38
996 查看
通用权限管理系统组件 (GPM - General Permissions Manager) 中后一个登录的把前一个登录的踢掉功能的实现
最近客户有需要,同一个帐户可以重复登录系统,但是后登录的账户需要把前面已经登录的账户踢掉,例如客户把电脑打开在别的电脑上然后换一个房间,或者换个办公楼想登录时就会遇到很多麻烦,遇到郁闷的情况就是死活无法登录系统,因为那个帐户已经在线了,或者2个帐户都登录了,最新消息提醒会乱套。其实软件是否好用都是体现在能否经得起各种折磨上,有的软件把问题考虑得很充分,不管遇到什么麻烦事情都已经帮你处理好了,想得非常周到,下面我们看看通用权限管理系统里的处理方式。
1:首先系统里有设置,是否允许重复登录的选项,一般情况下默认配置是不用修改的
2:我们登录系统
3:登录到系统后的效果如下
4:每个用户登录系统后,都会产生一个新的OpenId,然后把这个OpenId保存到客户端。
5:再登录系统后,会产生新的 OpenId。
6:由于上一个登录的本地的OpenId与服务器上的OpenId不一样了,所以上一个登录系统的软件就被迫被下线了,什么烦恼都这么简单的解决了。
有了这个功能,客户就可以在任何电脑上,任何办公室,任何办公楼里都可以随时登录,不用有上一个已经登录的系统的烦恼了,爽歪歪,软件也好用了更加人性化了。
系统管理员也有能力想让那个用户下线就可以让哪个用户下线了又简单又好用了。
当前用户的信息如下:
View Code //-----------------------------------------------------------------
// All Rights Reserved , Copyright (C) 2011 , Hairihan TECH, Ltd.
//-----------------------------------------------------------------
using System;
namespace DotNet.Utilities
{
///<summary>
/// BaseUserInfo
/// 用户类
///
/// 修改纪录
///
/// 2011.09.12 JiRiGaLa 版本:2.1 公司名称、部门名称、工作组名称进行重构。
/// 2011.05.11 JiRiGaLa 版本:2.0 增加安全通讯用户名、密码。
/// 2008.08.26 JiRiGaLa 版本:1.2 整理主键。
/// 2006.05.03 JiRiGaLa 版本:1.1 添加到工程项目中。
/// 2006.01.21 JiRiGaLa 版本:1.0 远程传递参数用属性才可以。
///
/// 版本:2.1
///
///<author>
///<name>JiRiGaLa</name>
///<date>2011.09.12</date>
///</author>
///</summary>
[Serializable]
publicclass BaseUserInfo
{
public BaseUserInfo()
{
this.GetUserInfo();
}
///<summary>
/// 远程调用Service用户名(为了提高软件的安全性)
///</summary>
privatestring serviceUserName = "Hairihan";
publicstring ServiceUserName
{
get
{
returnthis.serviceUserName;
}
set
{
this.serviceUserName = value;
}
}
///<summary>
/// 远程调用Service密码(为了提高软件的安全性)
///</summary>
privatestring servicePassword = "Hairihan";
publicstring ServicePassword
{
get
{
returnthis.servicePassword;
}
set
{
this.servicePassword = value;
}
}
///<summary>
/// 单点登录唯一识别标识
///</summary>
privatestring openId = string.Empty;
publicstring OpenId
{
get
{
returnthis.openId;
}
set
{
this.openId = value;
}
}
///<summary>
/// 目标用户
///</summary>
privatestring targetUserId = string.Empty;
publicstring TargetUserId
{
get
{
returnthis.targetUserId;
}
set
{
this.targetUserId = value;
}
}
///<summary>
/// 用户主键
///</summary>
privatestring id = string.Empty;
publicstring Id
{
get
{
returnthis.id;
}
set
{
this.id = value;
}
}
///<summary>
/// 员工主键
///</summary>
privatestring staffId = string.Empty;
publicstring StaffId
{
get
{
returnthis.staffId;
}
set
{
this.staffId = value;
}
}
///<summary>
/// 用户用户名
///</summary>
privatestring userName = string.Empty;
publicstring UserName
{
get
{
returnthis.userName;
}
set
{
this.userName = value;
}
}
///<summary>
/// 用户姓名
///</summary>
privatestring realName = string.Empty;
publicstring RealName
{
get
{
returnthis.realName;
}
set
{
this.realName = value;
}
}
///<summary>
/// 编号
///</summary>
privatestring code = string.Empty;
publicstring Code
{
get
{
returnthis.code;
}
set
{
this.code = value;
}
}
///<summary>
/// 当前的组织结构公司主键
///</summary>
privateint? companyId = null;
publicint? CompanyId
{
get
{
returnthis.companyId;
}
set
{
this.companyId = value;
}
}
///<summary>
/// 当前的组织结构公司编号
///</summary>
privatestring companyCode = string.Empty;
publicstring CompanyCode
{
get
{
returnthis.companyCode;
}
set
{
this.companyCode = value;
}
}
///<summary>
/// 当前的组织结构公司名称
///</summary>
privatestring companyName = string.Empty;
publicstring CompanyName
{
get
{
returnthis.companyName;
}
set
{
this.companyName = value;
}
}
///<summary>
/// 当前的组织结构部门主键
///</summary>
privateint? departmentId = null;
publicint? DepartmentId
{
get
{
returnthis.departmentId;
}
set
{
this.departmentId = value;
}
}
///<summary>
/// 当前的组织结构部门编号
///</summary>
privatestring departmentCode = string.Empty;
publicstring DepartmentCode
{
get
{
returnthis.departmentCode;
}
set
{
this.departmentCode = value;
}
}
///<summary>
/// 当前的组织结构部门名称
///</summary>
privatestring departmentName = string.Empty;
publicstring DepartmentName
{
get
{
returnthis.departmentName;
}
set
{
this.departmentName = value;
}
}
///<summary>
/// 当前的组织结构工作组主键
///</summary>
privateint? workgroupId = null;
publicint? WorkgroupId
{
get
{
returnthis.workgroupId;
}
set
{
this.workgroupId = value;
}
}
///<summary>
/// 当前的组织结构工作组编号
///</summary>
privatestring workgroupCode = string.Empty;
publicstring WorkgroupCode
{
get
{
returnthis.workgroupCode;
}
set
{
this.workgroupCode = value;
}
}
///<summary>
/// 当前的组织结构工作组名称
///</summary>
privatestring workgroupName = string.Empty;
publicstring WorkgroupName
{
get
{
returnthis.workgroupName;
}
set
{
this.workgroupName = value;
}
}
///<summary>
/// 默认角色
///</summary>
privateint? roleId = null;
publicint? RoleId
{
get
{
returnthis.roleId;
}
set
{
this.roleId = value;
}
}
///<summary>
/// 安全级别
///</summary>
privateint securityLevel = 0;
publicint SecurityLevel
{
get
{
returnthis.securityLevel;
}
set
{
this.securityLevel = value;
}
}
///<summary>
/// 默认角色名称
///</summary>
privatestring roleName = string.Empty;
publicstring RoleName
{
get
{
returnthis.roleName;
}
set
{
this.roleName = value;
}
}
///<summary>
/// 是否超级管理员
///</summary>
privatebool isAdministrator = false;
publicbool IsAdministrator
{
get
{
returnthis.isAdministrator;
}
set
{
this.isAdministrator = value;
}
}
///<summary>
/// 密码
///</summary>
privatestring password = string.Empty;
publicstring Password
{
get
{
returnthis.password;
}
set
{
this.password = value;
}
}
///<summary>
/// IP地址
///</summary>
privatestring ipAddress = string.Empty;
publicstring IPAddress
{
get
{
returnthis.ipAddress;
}
set
{
this.ipAddress = value;
}
}
///<summary>
/// MAC地址
///</summary>
privatestring macAddress = string.Empty;
publicstring MACAddress
{
get
{
returnthis.macAddress;
}
set
{
this.macAddress = value;
}
}
///<summary>
/// 当前语言选择
///</summary>
privatestring currentLanguage = string.Empty;
publicstring CurrentLanguage
{
get
{
returnthis.currentLanguage;
}
set
{
this.currentLanguage = value;
}
}
///<summary>
/// 当前布局风格选择
///</summary>
privatestring themes = string.Empty;
publicstring Themes
{
get
{
returnthis.themes;
}
set
{
this.themes = value;
}
}
///<summary>
/// 描述
///</summary>
privatestring description = string.Empty;
publicstring Description
{
get
{
returnthis.description;
}
set
{
this.description = value;
}
}
#region public void GetUserInfo()
///<summary>
/// 获取信息
///</summary>
publicvoid GetUserInfo()
{
this.ServiceUserName = BaseSystemInfo.ServiceUserName;
this.ServicePassword = BaseSystemInfo.ServicePassword;
this.CurrentLanguage = BaseSystemInfo.CurrentLanguage;
this.Themes = BaseSystemInfo.Themes;
}
#endregion
}
}
相关文章推荐
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中后一个登录的把前一个登录的踢掉功能的实现
- 通用权限管理系统组件 给信息管理系统加一个初始化的功能,调用存储过程
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现文件发送接收功能,附源码
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现文件发送接收功能,附源码
- 通用权限管理系统组件 (GPM - General Permissions Manager) 给信息管理系统加一个初始化的功能,调用存储过程
- 通用权限管理系统组件 (GPM - General Permissions Manager) 自己动手只能写一个轻量级的权限系统了功能也不强大,这不是白白流血流汗吗?
- 通用权限管理系统组件从实现基本功能到让别人欣赏软件,把每个细节都做精做彻底
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现文件发送接收功能,附源码
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现统一身份认证(Single Sign On,单点登录)附源码
- 通用权限管理系统组件 (GPM - General Permissions Manager) 从实现基本功能到让别人欣赏软件,把每个细节都做精做彻底
- 通用权限管理系统组件 中实现统一身份认证(Single Sign On,单点登录)附源码
- 通用权限管理系统组件 中集成多系统的统一登录(数据库源码级)附源码
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中及时通讯功能的改进
- C#.NET通用权限管理系统组件中数据集权限设置功能增加内部组织机构选项功能
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现大数据的高效分页显示
- 通用信息化开发平台 -- 通用权限管理系统改进登录日志显示功能
- 2011-03-08 走火入魔C#.NET通用权限管理系统组件改进功能部分
- 利用RBAC模型实现一个通用的权限管理系统
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现大数据的高效分页显示
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现高性能的ASP.NET管理页面自动生成