通用权限管理系统组件 中后一个登录的把前一个登录的踢掉功能的实现

简介:

通用权限管理系统组件 (GPM - General Permissions Manager) 中后一个登录的把前一个登录的踢掉功能的实现

  最近客户有需要,同一个帐户可以重复登录系统,但是后登录的账户需要把前面已经登录的账户踢掉,例如客户把电脑打开在别的电脑上然后换一个房间,或者换个办公楼想登录时就会遇到很多麻烦,遇到郁闷的情况就是死活无法登录系统,因为那个帐户已经在线了,或者2个帐户都登录了,最新消息提醒会乱套。

   其实软件是否好用都是体现在能否经得起各种折磨上,有的软件把问题考虑得很充分,不管遇到什么麻烦事情都已经帮你处理好了,想得非常周到,下面我们看看通用权限管理系统里的处理方式。


   1:首先系统里有设置,是否允许重复登录的选项,一般情况下默认配置是不用修改的

吉日嘎拉,通用权限管理系统组件

  2:我们登录系统

吉日嘎拉,通用权限管理系统组件

   3:登录到系统后的效果如下

吉日嘎拉,通用权限管理系统组件

    4:每个用户登录系统后,都会产生一个新的OpenId,然后把这个OpenId保存到客户端。

吉日嘎拉,通用权限管理系统组件

 5:再登录系统后,会产生新的 OpenId。

吉日嘎拉,通用权限管理系统组件

  6:由于上一个登录的本地的OpenId与服务器上的OpenId不一样了,所以上一个登录系统的软件就被迫被下线了,什么烦恼都这么简单的解决了。

吉日嘎拉,通用权限管理系统组件

  有了这个功能,客户就可以在任何电脑上,任何办公室,任何办公楼里都可以随时登录,不用有上一个已经登录的系统的烦恼了,爽歪歪,软件也好用了更加人性化了。

系统管理员也有能力想让那个用户下线就可以让哪个用户下线了又简单又好用了。


  当前用户的信息如下:

ContractedBlock.gif 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]
public class BaseUserInfo
   {
public BaseUserInfo()
       {
this.GetUserInfo();
       }

/// <summary>
///  远程调用Service用户名(为了提高软件的安全性)
/// </summary>
private string serviceUserName =  " Hairihan ";
public string ServiceUserName
       {
get
           {
return this.serviceUserName;
           }
set
           {
this.serviceUserName = value;
           }
       }

/// <summary>
///  远程调用Service密码(为了提高软件的安全性)
/// </summary>
private string servicePassword =  " Hairihan ";
public string ServicePassword
       {
get
           {
return this.servicePassword;
           }
set
           {
this.servicePassword = value;
           }
       }

/// <summary>
///  单点登录唯一识别标识
/// </summary>
private string openId =  string.Empty;
public string OpenId
       {
get
           {
return this.openId;
           }
set
           {
this.openId = value;
           }
       }

/// <summary>
///  目标用户
/// </summary>
private string targetUserId =  string.Empty;
public string TargetUserId
       {
get
           {
return this.targetUserId;
           }
set
           {
this.targetUserId = value;
           }
       }

/// <summary>
///  用户主键
/// </summary>
private string id =  string.Empty;
public string Id
       {
get
           {
return this.id;
           }
set
           {
this.id = value;
           }
       }

/// <summary>
///  员工主键
/// </summary>
private string staffId =  string.Empty;
public string StaffId
       {
get
           {
return this.staffId;
           }
set
           {
this.staffId = value;
           }
       }

/// <summary>
///  用户用户名
/// </summary>
private string userName =  string.Empty;
public string UserName
       {
get
           {
return this.userName;
           }
set
           {
this.userName = value;
           }
       }

/// <summary>
///  用户姓名
/// </summary>
private string realName =  string.Empty;
public string RealName
       {
get
           {
return this.realName;
           }
set
           {
this.realName = value;
           }
       }

/// <summary>
///  编号
/// </summary>
private string code =  string.Empty;
public string Code
       {
get
           {
return this.code;
           }
set
           {
this.code = value;
           }
       }

/// <summary>
///  当前的组织结构公司主键
/// </summary>
private int? companyId =  null;
public int? CompanyId
       {
get
           {
return this.companyId;
           }
set
           {
this.companyId = value;
           }
       }

/// <summary>
///  当前的组织结构公司编号
/// </summary>
private string companyCode =  string.Empty;
public string CompanyCode
       {
get
           {
return this.companyCode;
           }
set
           {
this.companyCode = value;
           }
       }

/// <summary>
///  当前的组织结构公司名称
/// </summary>
private string companyName =  string.Empty;
public string CompanyName
       {
get
           {
return this.companyName;
           }
set
           {
this.companyName = value;
           }
       }

/// <summary>
///  当前的组织结构部门主键
/// </summary>
private int? departmentId =  null;
public int? DepartmentId
       {
get
           {
return this.departmentId;
           }
set
           {
this.departmentId = value;
           }
       }

/// <summary>
///  当前的组织结构部门编号
/// </summary>
private string departmentCode =  string.Empty;
public string DepartmentCode
       {
get
           {
return this.departmentCode;
           }
set
           {
this.departmentCode = value;
           }
       }

/// <summary>
///  当前的组织结构部门名称
/// </summary>
private string departmentName =  string.Empty;
public string DepartmentName
       {
get
           {
return this.departmentName;
           }
set
           {
this.departmentName = value;
           }
       }

/// <summary>
///  当前的组织结构工作组主键
/// </summary>
private int? workgroupId =  null;
public int? WorkgroupId
       {
get
           {
return this.workgroupId;
           }
set
           {
this.workgroupId = value;
           }
       }

/// <summary>
///  当前的组织结构工作组编号
/// </summary>
private string workgroupCode =  string.Empty;
public string WorkgroupCode
       {
get
           {
return this.workgroupCode;
           }
set
           {
this.workgroupCode = value;
           }
       }

/// <summary>
///  当前的组织结构工作组名称
/// </summary>
private string workgroupName =  string.Empty;
public string WorkgroupName
       {
get
           {
return this.workgroupName;
           }
set
           {
this.workgroupName = value;
           }
       }       

/// <summary>
///  默认角色
/// </summary>
private int? roleId =  null;
public int? RoleId
       {
get
           {
return this.roleId;
           }
set
           {
this.roleId = value;
           }
       }

/// <summary>
///  安全级别
/// </summary>
private int securityLevel =  0;
public int SecurityLevel
       {
get
           {
return this.securityLevel;
           }
set
           {
this.securityLevel = value;
           }
       }

/// <summary>
///  默认角色名称
/// </summary>
private string roleName =  string.Empty;
public string RoleName
       {
get
           {
return this.roleName;
           }
set
           {
this.roleName = value;
           }
       }

/// <summary>
///  是否超级管理员
/// </summary>
private bool isAdministrator =  false;
public bool IsAdministrator
       {
get
           {
return this.isAdministrator;
           }
set
           {
this.isAdministrator = value;
           }
       }

/// <summary>
///  密码
/// </summary>
private string password =  string.Empty;
public string Password
       {
get
           {
return this.password;
           }
set
           {
this.password = value;
           }
       }

/// <summary>
///  IP地址
/// </summary>
private string ipAddress =  string.Empty;
public string IPAddress
       {
get
           {
return this.ipAddress;
           }
set
           {
this.ipAddress = value;
           }
       }

/// <summary>
///  MAC地址
/// </summary>
private string macAddress =  string.Empty;
public string MACAddress
       {
get
           {
return this.macAddress;
           }
set
           {
this.macAddress = value;
           }
       }

/// <summary>
///  当前语言选择
/// </summary>
private string currentLanguage =  string.Empty;
public string CurrentLanguage
       {
get
           {
return this.currentLanguage;
           }
set
           {
this.currentLanguage = value;
           }
       }

/// <summary>
///  当前布局风格选择
/// </summary>
private string themes =  string.Empty;
public string Themes
       {
get
           {
return this.themes;
           }
set
           {
this.themes = value;
           }
       }

/// <summary>
///  描述
/// </summary>
private string description =  string.Empty;
public string Description
       {
get
           {
return this.description;
           }
set
           {
this.description = value;
           }
       }

#region public void GetUserInfo()
/// <summary>
///  获取信息
/// </summary>
public void GetUserInfo()
       {
this.ServiceUserName = BaseSystemInfo.ServiceUserName;
this.ServicePassword = BaseSystemInfo.ServicePassword;
this.CurrentLanguage = BaseSystemInfo.CurrentLanguage;
this.Themes = BaseSystemInfo.Themes;
       }
#endregion
   }
}





本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1196341,如需转载请自行联系原作者

相关文章
|
6月前
|
小程序 JavaScript 程序员
小程序最新标准授权登录流程+逻辑
小程序最新标准授权登录流程+逻辑
106 0
|
3月前
|
数据安全/隐私保护
用户及组管理操作
用户及组管理操作
20 0
|
前端开发 JavaScript 关系型数据库
后台系统登录功能改造(1) | 学习笔记
快速学习后台系统登录功能改造(1)
152 0
|
SQL Java 数据库
用户模块之注册功能完成|学习笔记
快速学习 用户模块之注册功能完成
|
NoSQL 安全 API
多账号统一登陆,怎么实现?
现在几乎大部分的 App 都支持使用多个第三方账号进行登录,如:微信、QQ、微博等,我们把此称为多账号统一登陆。而这些账号的表设计,流程设计至关重要,不然后续扩展性贼差。 本文不提供任何代码实操,但是梳理一下博主根据我司账号模块的设计,提供思路,仅供参考。
705 0
多账号统一登陆,怎么实现?
|
Java 数据库 数据安全/隐私保护
用户模块之登录功能 | 学习笔记
快速学习用户模块之登录功能
173 0
|
Web App开发
【自然框架】通用权限的视频演示(一):添加角色,权限到功能节点和按钮
写了几个关于权限的东东,好像大家都不大理解,也不太清楚我的权限到底能做什么,所以想来想去还是弄点视频吧,就是屏幕录像,这样大家看起来就方便了吧。      为了大家便于观看视频,我先说一下视频的步骤。
1153 0
|
数据库 数据安全/隐私保护 PHP
如何实现网站的登录功能
如何实现网站的登录功能http://www.bieryun.com/4623.html 我记得我刚刚学习基本PHP的时候,我正在尝试创建一个基本的网站。除了一件事,我还想到了其他一切。我想在我的网站上实现登录功能,我不知道该怎么做。
2586 0