/// <summary>
        /// 客户端申请AES密码
        /// </summary>
        /// <param name="DeviceCode">设备号</param>
        /// <param name="Modulus">RSA公钥模</param>
        /// <param name="Exponent">RSA公钥指数</param>
        /// <param name="CryptAESKey">ASE密钥(密文)</param>
        /// <param name="CryptAESIV">ASE向量(密文)</param>
        /// <returns>0:成功 -100:设备号未在可登录的列表中登记</returns>
        public static int ApplyAESEncryptKey(string DeviceCode, string Modulus, string Exponent, out string CryptAESKey, out string CryptAESIV)
        {
            LogWriter.WriteLog("UserLogin.ApplyAESEncryptKey:DeviceCode=" + DeviceCode + ",Modulus=" + Modulus + ",Exponent=" + Exponent);
            CryptAESKey = ""; CryptAESIV = "";
            if (ConfigHelper.GetConfigBool("CheckDeviceCode"))
            {
                //if (!DeviceCode.StartsWith("iOS"))
                {
                    if (User_RegisterMACBLL.GetModelList("MacAddr='" + DeviceCode + "'").Count() == 0)
                    {
                        LogWriter.WriteLog("UserLogin.ApplyAESEncryptKey Error! DeviceCode not in allow lists! DeviceCode=" + DeviceCode);
                        return(-1003);
                    }
                }
            }

            string         cachekey = "EBMIF_DeviceCryptKey-" + DeviceCode;
            DeviceCryptKey key      = null;

            #region 从数据库中加载保存的密钥
            if (key == null)
            {
                string _keystr = "";

                if (UserBLL.AppCryptKey_LoadKey(DeviceCode, out _keystr) == 0 && !string.IsNullOrEmpty(_keystr))
                {
                    try
                    { key = JsonConvert.DeserializeObject <DeviceCryptKey>(_keystr); }
                    catch { }
                }
            }
            #endregion

            if (key == null)
            {
                //生成AES加密密钥
                key = new DeviceCryptKey(DeviceCode, Modulus, Exponent);
                key.GenerateAESKey();
                DataCache.SetCache(cachekey, key, DateTime.Now.AddMinutes(5), System.Web.Caching.Cache.NoSlidingExpiration);

                //密钥保存至数据库
                UserBLL.AppCryptKey_SaveKey(DeviceCode, JsonConvert.SerializeObject(key));
            }

            //将密钥RSA加密
            RSAProvider.EncryptText(key.AESKey, Modulus, Exponent, out CryptAESKey);
            RSAProvider.EncryptText(key.AESIV, Modulus, Exponent, out CryptAESIV);

            if (ConfigHelper.GetConfigBool("DebugMode"))
            {
                LogWriter.WriteLog("UserLogin.ApplyAESEncryptKeyA:DeviceCode=" + DeviceCode + ",AESKey=" + key.AESKey + ",AESIV=" + key.AESIV);
            }
            LogWriter.WriteLog("UserLogin.ApplyAESEncryptKeyB:DeviceCode=" + DeviceCode + ",CryptAESKey=" + CryptAESKey + ",CryptAESIV=" + CryptAESIV);
            return(0);
        }
        /// <summary>
        /// 根据门店ID,获取可登录的设备号列表
        /// </summary>
        /// <param name="ClientID"></param>
        /// <returns></returns>
        public List <string> GetDeviceCodeListByClientID(int ClientID)
        {
            IList <User_RegisterMAC> lists = User_RegisterMACBLL.GetModelList(@" UserName IN (SELECT LoweredUserName FROM aspnet_Users INNER JOIN aspnet_Membership 
                        ON aspnet_Users.UserId = aspnet_Membership.UserId AND aspnet_Membership.ClientID = " + ClientID.ToString() + ")  AND Enabled='Y' AND ApproveFlag=1");

            List <string> ret = new List <string>(lists.Count);

            foreach (User_RegisterMAC item in lists)
            {
                ret.Add(item.MacAddr.ToUpper());
            }
            return(ret);
        }
        /// <summary>
        /// 根据设备号获取该设备关联的登录账户
        /// </summary>
        /// <param name="DeviceCode"></param>
        /// <returns></returns>
        public List <string> GetUserNameListByDeviceCode(string DeviceCode)
        {
            IList <User_RegisterMAC> lists = User_RegisterMACBLL.GetModelList("MacAddr='" + DeviceCode +
                                                                              @"' AND Enabled='Y' AND ApproveFlag=1 AND UserName IN (SELECT LoweredUserName FROM aspnet_Users INNER JOIN aspnet_Membership 
                        ON aspnet_Users.UserId = aspnet_Membership.UserId AND aspnet_Membership.ClientID IS NOT NULL)");

            List <string> ret = new List <string>(lists.Count);

            foreach (User_RegisterMAC item in lists)
            {
                ret.Add(item.UserName);
            }
            return(ret);
        }
 protected void bt_AddMAC_Click(object sender, EventArgs e)
 {
     if (tbx_MACAddr.Text != "")
     {
         string[] macaddrs = tbx_MACAddr.Text.Split(new char[] { ',', ',', '|' }, StringSplitOptions.RemoveEmptyEntries);
         if (macaddrs.Length > 0)
         {
             foreach (string addr in macaddrs)
             {
                 if (User_RegisterMACBLL.GetModelList(string.Format("UserName='******' AND MACAddr='{1}'", lb_Username.Text, addr)).Count == 0)
                 {
                     User_RegisterMACBLL bll = new User_RegisterMACBLL();
                     bll.Model.UserName = lb_Username.Text;
                     bll.Model.MacAddr = addr;
                     bll.Model.Enabled = "Y";
                     bll.Model.ApproveFlag = 1;
                     bll.Model.InsertStaff = (int)Session["UserID"];
                     bll.Add();
                 }
             }
             BindGrid();
         }
     }
 }
Exemple #5
0
 protected void bt_AddMAC_Click(object sender, EventArgs e)
 {
     if (tbx_MACAddr.Text != "")
     {
         string[] macaddrs = tbx_MACAddr.Text.Split(new char[] { ',', ',', '|' }, StringSplitOptions.RemoveEmptyEntries);
         if (macaddrs.Length > 0)
         {
             foreach (string addr in macaddrs)
             {
                 if (User_RegisterMACBLL.GetModelList(string.Format("UserName='******' AND MACAddr='{1}'", lb_Username.Text, addr)).Count == 0)
                 {
                     User_RegisterMACBLL bll = new User_RegisterMACBLL();
                     bll.Model.UserName    = lb_Username.Text;
                     bll.Model.MacAddr     = addr;
                     bll.Model.Enabled     = "Y";
                     bll.Model.ApproveFlag = 1;
                     bll.Model.InsertStaff = (int)Session["UserID"];
                     bll.Add();
                 }
             }
             BindGrid();
         }
     }
 }
Exemple #6
0
 private void BindGrid()
 {
     gv_MACAddrList.DataSource = User_RegisterMACBLL.GetModelList("UserName='******'");
     gv_MACAddrList.DataBind();
 }