Backup
This commit is contained in:
parent
1fc742f477
commit
77ec57f97e
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using MECF.Framework.Common.Account.Extends;
|
||||||
|
|
||||||
namespace Aitex.Core.Account
|
namespace Aitex.Core.Account
|
||||||
{
|
{
|
||||||
|
@ -6,30 +7,30 @@ namespace Aitex.Core.Account
|
||||||
public class LoginResult
|
public class LoginResult
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置或返回是否登录成功。
|
/// 设置或返回是否登录成功。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool ActSucc { get; set; }
|
public bool ActSucc { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置或返回登录成功后RT分配的唯一识别码。
|
/// 设置或返回登录成功后RT分配的唯一识别码。
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// 该唯一识别码用于在RT区分每一个不同的客户端连接。
|
/// 该唯一识别码用于在RT区分每一个不同的客户端连接。
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string SessionId { get; set; }
|
public string SessionId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置或返回登录的账户信息。
|
/// 设置或返回登录的账户信息。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Account AccountInfo { get; set; }
|
public AccountEx AccountInfo { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置或返回登录结果描述。
|
/// 设置或返回登录结果描述。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置或返回登录时间。
|
/// 设置或返回登录时间。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime LoginTime { get; set; }
|
public DateTime LoginTime { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Security.Principal;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Aitex.Common.Util;
|
using Aitex.Common.Util;
|
||||||
using Aitex.Core.Account;
|
using Aitex.Core.Account;
|
||||||
|
@ -18,7 +19,9 @@ namespace MECF.Framework.Common.Account
|
||||||
{
|
{
|
||||||
#region Variables
|
#region Variables
|
||||||
|
|
||||||
private readonly Dictionary<string, AccountEx> _loginUserList = new ();
|
private readonly Dictionary<string, LoginResult> _dicLoginNameToLoginResult = new ();
|
||||||
|
private readonly Dictionary<string, LoginResult> _dicSessionIdToLoginResult = new ();
|
||||||
|
|
||||||
private readonly string _scAccountFile = PathManager.GetCfgDir() + "Account//Account.xml";
|
private readonly string _scAccountFile = PathManager.GetCfgDir() + "Account//Account.xml";
|
||||||
private readonly string _scAccountLocalFile = PathManager.GetCfgDir() + "Account//_Account.xml";
|
private readonly string _scAccountLocalFile = PathManager.GetCfgDir() + "Account//_Account.xml";
|
||||||
|
|
||||||
|
@ -88,19 +91,23 @@ namespace MECF.Framework.Common.Account
|
||||||
if (roleId == role)
|
if (roleId == role)
|
||||||
{
|
{
|
||||||
loginResult.ActSucc = true;
|
loginResult.ActSucc = true;
|
||||||
|
loginResult.AccountInfo = account;
|
||||||
loginResult.Description = AuthorizeResult.None.ToString();
|
loginResult.Description = AuthorizeResult.None.ToString();
|
||||||
foreach (var loginUser in _loginUserList)
|
foreach (var kvp in _dicLoginNameToLoginResult)
|
||||||
{
|
{
|
||||||
|
var loggedIn = kvp.Value;
|
||||||
|
|
||||||
if (!SC.ContainsItem("System.AllowMultiClientLogin") ||
|
if (!SC.ContainsItem("System.AllowMultiClientLogin") ||
|
||||||
!SC.GetValue<bool>("System.AllowMultiClientLogin") ||
|
!SC.GetValue<bool>("System.AllowMultiClientLogin") ||
|
||||||
loginUser.Value.LoginName == loginName)
|
loggedIn.AccountInfo.LoginName == loginName)
|
||||||
{
|
{
|
||||||
EV.PostKickoutMessage(loginUser.Value.SessionId);
|
EV.PostKickoutMessage(loggedIn.SessionId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
account.SessionId = loginResult.SessionId;
|
account.SessionId = loginResult.SessionId;
|
||||||
_loginUserList[loginName] = account;
|
_dicLoginNameToAccountInfo[loginName] = account;
|
||||||
|
_dicSessionIdToAccountInfo[account.SessionId] = account;
|
||||||
return loginResult;
|
return loginResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,11 +131,12 @@ namespace MECF.Framework.Common.Account
|
||||||
|
|
||||||
internal void Logout(string accountId, string loginId)
|
internal void Logout(string accountId, string loginId)
|
||||||
{
|
{
|
||||||
foreach (string key in _loginUserList.Keys)
|
foreach (string key in _dicLoginNameToAccountInfo.Keys)
|
||||||
{
|
{
|
||||||
if (accountId == key && _loginUserList[key].SessionId == loginId)
|
if (accountId == key && _dicLoginNameToAccountInfo[key].SessionId == loginId)
|
||||||
{
|
{
|
||||||
_loginUserList.Remove(key);
|
_dicSessionIdToAccountInfo.Remove(accou)
|
||||||
|
_dicLoginNameToAccountInfo.Remove(key);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,12 +102,7 @@ namespace MECF.Framework.Common.Account.Extends
|
||||||
get => _mStrPassword;
|
get => _mStrPassword;
|
||||||
set => _mStrPassword = value;
|
set => _mStrPassword = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 设置或返回当前用户登录的Session ID。
|
|
||||||
/// </summary>
|
|
||||||
public string SessionId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置或返回当前用户是否为超级用户。
|
/// 设置或返回当前用户是否为超级用户。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -7,43 +7,17 @@ namespace MECF.Framework.Common.Account.Extends
|
||||||
public class UserContext : NotifiableItem
|
public class UserContext : NotifiableItem
|
||||||
{
|
{
|
||||||
private string _loginName;
|
private string _loginName;
|
||||||
|
|
||||||
private string _rolename;
|
|
||||||
|
|
||||||
public string Address { get; set; }
|
|
||||||
|
|
||||||
public string HostName { get; set; }
|
|
||||||
|
|
||||||
public string LoginName
|
public string LoginName
|
||||||
{
|
{
|
||||||
get
|
get => _loginName;
|
||||||
{
|
|
||||||
return _loginName;
|
|
||||||
}
|
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_loginName = value;
|
_loginName = value;
|
||||||
InvokePropertyChanged("LoginName");
|
InvokePropertyChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string RoleName
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return _rolename;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
_rolename = value;
|
|
||||||
InvokePropertyChanged("RoleName");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string RoleID { get; set; }
|
|
||||||
|
|
||||||
public string LoginId { get; set; }
|
|
||||||
|
|
||||||
public Role Role { get; set; }
|
public Role Role { get; set; }
|
||||||
|
|
||||||
public DateTime LoginTime { get; set; }
|
public DateTime LoginTime { get; set; }
|
||||||
|
@ -52,6 +26,8 @@ namespace MECF.Framework.Common.Account.Extends
|
||||||
|
|
||||||
public int Token { get; set; }
|
public int Token { get; set; }
|
||||||
|
|
||||||
|
public string SessionId { get; set; }
|
||||||
|
|
||||||
public string Language { get; private set; }
|
public string Language { get; private set; }
|
||||||
|
|
||||||
public bool IsLogin { get; set; }
|
public bool IsLogin { get; set; }
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace MECF.Framework.UI.Client.CenterViews.LogOnOff
|
||||||
this.DisplayName = (string)Application.Current.Resources["AppName"];
|
this.DisplayName = (string)Application.Current.Resources["AppName"];
|
||||||
this.DialogResult = UserMode.None;
|
this.DialogResult = UserMode.None;
|
||||||
this.LoginName = BaseApp.Instance.UserContext.LoginName;
|
this.LoginName = BaseApp.Instance.UserContext.LoginName;
|
||||||
this.RoleName = BaseApp.Instance.UserContext.RoleName;
|
this.RoleName = BaseApp.Instance.UserContext.Role.RoleName;
|
||||||
this.LoginTime = BaseApp.Instance.UserContext.LoginTime;
|
this.LoginTime = BaseApp.Instance.UserContext.LoginTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue