using System; using System.Collections.Generic; namespace Shared.Common { [System.Serializable] public class Config { private const string fileName = "Config.json"; private static Config config = null; public static Config Instance { get { if (config == null) { ReFresh(); } return config; } } /// /// 服务器注册ID /// public string RegistrationID = string.Empty; /// /// 账户登录成功时的时间 /// public DateTime LoginDateTime = DateTime.MinValue; /// /// /// [Newtonsoft.Json.JsonIgnore] public bool IsLogin { get { return (DateTime.Now - LoginDateTime).Days < 7; } } public static void ReFresh() { var file = Shared.IO.FileUtils.ReadFile(fileName); config = Newtonsoft.Json.JsonConvert.DeserializeObject(System.Text.Encoding.UTF8.GetString(file)); if (config == null) { config = new Config { }; } if (config.PasswordEncrypt != string.Empty) { //解密 config.Password = Phone.UserCenter.UserCenterLogic.DecryptPassword("hD1(La3o", config.PasswordEncrypt); } } /// /// 账户登录成功的账户类型(此变量默认为0,并且不赋值) /// [Newtonsoft.Json.JsonIgnore] public int AccountType = 0; /// /// 当前登录的帐号 /// public string Account = string.Empty; /// /// 当前帐号密码 /// [Newtonsoft.Json.JsonIgnore] public string Password = string.Empty; /// /// 加密密码 /// public string PasswordEncrypt = string.Empty; /// /// 短信登录返回的md5后的密码 /// public string MD5PWD = string.Empty; /// /// 登陆账号的Guid /// public string Guid = string.Empty; /// /// 成员请求控制主帐号此住宅时请求基地址 /// public string AdminRequestBaseUrl = string.Empty; /// /// 成员请求控制主帐号此住宅时请求基地址的LoginAccessToken的值 /// public string AdminRequestToken = string.Empty; /// /// 远程连接的Mqtt的客户端ID /// [Newtonsoft.Json.JsonIgnore] public string ConnEmqClientId = string.Empty; /// /// 当前登录的账号是不是之前的账号 /// [Newtonsoft.Json.JsonIgnore] public bool TheSameLoginAccount = false; /// /// 当前帐号的Token /// [Newtonsoft.Json.JsonIgnore] public string Token { get { string md5Password; if (string.IsNullOrEmpty(Password)) { //用于短信登录密码为 md5Password = MD5PWD; } else { var result = System.Text.Encoding.UTF8.GetBytes(Password); var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); var output = md5.ComputeHash(result); md5Password = BitConverter.ToString(output).Replace("-", ""); } var account_md5Pssword = Account + ":" + md5Password; var tokenBytes = System.Text.Encoding.UTF8.GetBytes(account_md5Pssword); return Convert.ToBase64String(tokenBytes).Replace("=", "%3D"); } } /// /// 登录时Token(目前这东西没用) /// [Newtonsoft.Json.JsonIgnore] public string LoginToken = string.Empty; public string HomeId = string.Empty; /// /// 住宅文件列表 /// public List HomeFilePathList = new List(); [Newtonsoft.Json.JsonIgnore] private House m_Home = null; /// /// 当前住宅 /// /// The home. [Newtonsoft.Json.JsonIgnore] public House Home { get { if (m_Home != null) { return m_Home; } m_Home = Phone.UserCenter.HdlResidenceLogic.Current.GetHouseByHouseId(HomeId); if (m_Home == null) { m_Home = new House(); } return m_Home; } set { m_Home = value; } } /// /// 全路径 /// 使用方法: FullPath + FileName /// /// The full path. [Newtonsoft.Json.JsonIgnore] public string FullPath { get { return System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Instance.Guid, Instance.HomeId); } } /// /// 保存当前对象 /// public void Save() { //加密,不能保存明码 this.PasswordEncrypt = Phone.UserCenter.UserCenterLogic.EncryptPassword("hD1(La3o", this.Password); var bytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); Shared.IO.FileUtils.WriteFileByBytes(fileName, bytes); ReFresh(); } } }