using System;
using System.Runtime.Serialization;
using MECF.Framework.Common.Account.Extends;
namespace Aitex.Core.Account;
///
/// 登录凭据。
///
///
/// RT使用该对象维护用户登录信息,包括:登录激活状态维持、WCF远程调用权限验证。
///
[Serializable]
[DataContract]
public class Credential
{
#region Consturctors
///
/// 创建登录凭据的实例。
///
///
/// 该构造函数用于WCF通讯,RT中创建该对象是请使用有参数的构造函数。
///
public Credential()
{
}
///
/// 创建登录凭据的实例。
///
/// 登录令牌。
/// 登录账户信息。
public Credential(string token, AccountEx accountInfo)
{
Token = token;
AccountInfo = accountInfo;
}
#endregion
#region Properties
///
/// 设置或返回当前凭据包含的令牌。
///
[DataMember]
public string Token { get; set; }
///
/// 设置或返回当前凭据状态
///
[DataMember]
public CredentialState State { get; set; }
///
/// 设置或返回最后一次激活时间。
///
[DataMember]
public DateTime LastAliveTime { get; set; }
///
/// 设置或返回登录的账户信息。
///
[DataMember]
public AccountEx AccountInfo { get; set; }
///
/// 设置或返回客户端IP地址。
///
public string LoginIP { get; set; }
///
/// 设置或返回客户端Port。
///
public int LoginPort { get; set; }
///
/// 设置或返回登录时间。
///
public DateTime LoginTime { get; set; }
///
/// 设置或返回登录结果描述。
///
public string Description { get; set; }
#endregion
#region Methods
///
public override string ToString()
{
return $"{AccountInfo.LoginName} from {LoginIP}:{LoginPort}";
}
#endregion
}