public IHttpActionResult getalldatafilter(UserAParModel par)
        {
            try
            {
                dbOAMSEntities db        = new dbOAMSEntities();
                string         tablename = par.valstring1.checkIsNull();
                tablename = CryptData.querydecrypt(tablename);
                var rfun = db.Database.SqlQuery <tbFunction>("select f.* from bnle.tbFunction f where f.MAFUNC = @MAFUNC and KICHTHOAT = 1"
                                                             , new SqlParameter("@MAFUNC", tablename)).FirstOrDefault();
                if (rfun != null)
                {
                    if (rfun.TABLEPARENT.checkIsNull() != "")
                    {
                        DataGridFModel result    = new DataGridFModel();
                        string         sqlPARENT = string.Format("select {0} as [CODE],{1} as [VALUENAME] from {2}",
                                                                 rfun.PARENTKEY, rfun.PARENTNAME, rfun.TABLEPARENT);
                        var dirs = db.Database.SqlQuery <DataDirControl>(sqlPARENT).ToList();
                        result.datafilter  = dirs;
                        result.tablename   = rfun.PARENTNAME;
                        result.formname    = rfun.TENFUNC;
                        result.viewmode    = rfun.VIEWMODE;
                        result.widthfilter = string.Format("col-xs-{0}", rfun.PARENTWITHD);
                        result.widthgrid   = string.Format("col-xs-{0}", 12 - Convert.ToInt32(rfun.PARENTWITHD));
                        return(Ok(result));
                    }
                }

                return(Ok(new List <DataDirControl>()));
            }
            catch
            {
                return(Ok(new List <DataDirControl>()));
            }
        }
Пример #2
0
        public async Task bili_api()
        {
            Hashtable hs = new Hashtable()
            {
                { "username", CryptData.Encode(UserName) },
                { "password", CryptData.Encode(Password) },
                { "sign", CryptData.Encode(String.Concat(UserName, Password, Constant.AppKey)) }
            };
            var response = await Network.HttpPostAsync("https://api.fate-flag.cn/login/login.php?outinggua=1", hs);

            if (response == "false")
            {
                throw new Exception("server_error");
            }

            var json = JObject.Parse(CryptData.Decode(response));

            if (json["code"].ToString() != "0")
            {
                throw new Exception(json["message"].ToString());
            }

            uid        = json["uid"].ToString();
            uname      = json["uname"].ToString();
            access_key = json["access_key"].ToString();
            PlayerFace = json["face"].ToString();
        }
Пример #3
0
        public static void SetNHibernateSessionFactoryProps()
        {
            if (NHibernateSessionManager.Instance.SessionFactoryPropsDic.Count == 0)
            {
                string      configPath        = AppDomain.CurrentDomain.BaseDirectory + "\\Web.config";
                XmlDocument XmlDocumentConfig = new XmlDocument();
                XmlDocumentConfig.Load(configPath);

                XmlNamespaceManager namespaceManagerAtlas = new XmlNamespaceManager(XmlDocumentConfig.NameTable);
                namespaceManagerAtlas.AddNamespace("nh", "urn:nhibernate-configuration-2.2");
                XmlNode property = XmlDocumentConfig.SelectSingleNode("configuration/nh:hibernate-configuration/nh:session-factory", namespaceManagerAtlas);
                foreach (XmlNode item in XmlDocumentConfig.SelectSingleNode("configuration/nh:hibernate-configuration/nh:session-factory", namespaceManagerAtlas))
                {
                    if (item != null && item.Name == "property" && item.Attributes["name"].Value != null)
                    {
                        string itemInnerText = item.InnerText;
                        if (item.Attributes["name"].Value == "connection.connection_string")
                        {
                            itemInnerText = new CryptData(GetKeyFromMachinCode()).DecryptData(itemInnerText.Trim());
                        }
                        if (!NHibernateSessionManager.Instance.SessionFactoryPropsDic.Keys.Contains(item.Attributes["name"].Value))
                        {
                            NHibernateSessionManager.Instance.SessionFactoryPropsDic.Add(item.Attributes["name"].Value, itemInnerText.Trim());
                        }
                    }
                }
            }
        }
Пример #4
0
        public string calc_battleStatus(string battleId)
        {
            var uid = UserGame.userId;

            return(CryptData.Compute(BitConverter.GetBytes((long)(Int64.Parse(uid) + 1)).Concat <byte>(BitConverter.GetBytes((long)(0L - 0x408fd5L)))
                                     .Concat <byte>(BitConverter.GetBytes((long)(0L / 2L))).Concat <byte>(BitConverter.GetBytes((long)(Int64.Parse(battleId) - 0x7fffffffL)))
                                     .Concat <byte>(BitConverter.GetBytes((long)(0L - 0x25acf6L))).ToArray <byte>()).ToString());
        }
Пример #5
0
 public static void DownloadFile(CryptData cryptData, string path)
 {
     //free license
     ComponentInfo.SetLicense("FREE-LIMITED-KEY");
     using (FileStream fs = System.IO.File.Create(path))
     {
         cryptData.File.CopyTo(fs);
     }
 }
Пример #6
0
        public Dictionary <string, string> getPlatfromInfoDic(string[] names, Dictionary <string, string> replaceInfos = null)
        {
            if (names.Contains("lastAccessTime"))
            {
                PlatfromInfos["lastAccessTime"] = TimetampSecond.ToString();
            }
            if (names.Contains("timestamp"))
            {
                PlatfromInfos["timestamp"] = Timetamp.ToString();
            }
            var dic = serverApi.getPlatfromInfoDic(names);

            if (replaceInfos == null && this.replaceInfos != null)
            {
                replaceInfos = this.replaceInfos;
            }
            if (replaceInfos != null)
            {
                foreach (var item in replaceInfos)
                {
                    if (!names.Contains(item.Key))
                    {
                        continue;
                    }
                    dic[item.Key] = item.Value;
                }
            }
            if (names.Contains("sign"))
            {
                dic["sign"] = GetSign(dic);
            }
            if (names.Contains("usk"))
            {
                dic["usk"] = CryptData.EncryptMD5((!serverApi.ios ? "B6949765EC73CF001718B5FD507FCD9E" : "088416A9FC66304405B483FFB1355A14") + dic["usk"]);
            }
            var ndir = new Dictionary <string, string>();

            foreach (var name in names)
            {
                if (dic.ContainsKey(name))
                {
                    ndir[name] = dic[name];
                }
                else
                {
                    ndir[name] = string.Empty;
                }
            }
            return(ndir);
        }
Пример #7
0
        public static void LoadAssetList()
        {
            if (!File.Exists(AssetPath + AssetListTxtFileName))
            {
                var data = System.Web.HttpUtility.UrlDecode(new WebClient().DownloadString(AssetStorageUrl));
                File.WriteAllText(AssetPath + AssetListTxtFileName, System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(System.Web.HttpUtility.UrlDecode(data))));
            }

            var list     = new Dictionary <string, AssetData>();
            var loadData = File.ReadAllText(AssetPath + AssetListTxtFileName);

            loadData = CryptData.TextDecrypt(loadData);
            var listData = loadData.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < listData.Length; i++)
            {
                var lineData = listData[i].Split(new char[] { ',' });
                if (lineData.Length != 5)
                {
                    continue;
                }

                var version = int.Parse(lineData[0].Trim());
                var attrib  = lineData[1];
                var size    = int.Parse(lineData[2].Trim());
                var crc     = uint.Parse(lineData[3].Trim());
                var name    = lineData[4];
                var newname = string.Empty;
                if (lineData[4].Contains("%"))
                {
                    char[] chArray10 = new char[] { '%' };
                    char[] chArray11 = new char[] { '%' };
                    newname = lineData[4].Split(chArray10)[0] + lineData[4].Split(chArray11)[2];
                }
                else
                {
                    newname = lineData[4];
                }
                var assetInfo = new AssetData();
                assetInfo.NewName = name;
                assetInfo.Name    = newname;
                assetInfo.SetUpdateInfo(version, attrib, size, crc);
                if (!list.ContainsKey(assetInfo.Name))
                {
                    list.Add(assetInfo.Name, assetInfo);
                }
            }
            AssetList = list;
        }
Пример #8
0
        public static void LoadDatabase(string version = null)
        {
            if (version != null)
            {
                dataVer = version;
            }
            if (!File.Exists(DataPath + "data_" + dataVer + ".json"))
            {
                var data = new WebClient().DownloadString(DataJsonUrl.Replace("{dataVer}", dataVer));
                File.WriteAllText(DataPath + "data_" + dataVer + ".json", CryptData.Decrypt(data, true));
            }
            var content = File.ReadAllText(DataPath + "data_" + dataVer + ".json");

            Database = JsonConvert.DeserializeObject <Database>(content);
        }
Пример #9
0
        public void GetSign(Hashtable table)
        {
            if (table.ContainsKey("sign"))
            {
                var keys = new ArrayList(table.Keys);
                keys.Sort();
                var str = "";
                foreach (var key in keys)
                {
                    str += table[key];
                }

                table["sign"] = CryptData.CalcSign(str);
            }
        }
Пример #10
0
        public void EncryptFromText()
        {
            //Arrange
            var data = new CryptData();

            data.DecryptedData = "ךאנכ ף ךכאנ� ףךנאכ ךמנאככ�";
            data.Key           = "ךכאנםוע";
            var expectedValue = "ץכנ� ב ן‏ך�� הרץעצ צמבםנ‏¸";

            //Act
            data.EncryptedData = Decryptor.Encode(data.DecryptedData, data.Key);

            //Assert
            Assert.AreEqual(expectedValue, data.EncryptedData);
        }
Пример #11
0
        public static void SaveFile(CryptData cryptData, string path, bool isDecrypted)
        {
            //free license
            ComponentInfo.SetLicense("FREE-LIMITED-KEY");
            var doc = new DocumentModel();

            if (isDecrypted)
            {
                doc.Content.LoadText(cryptData.DecryptedData);
            }
            else
            {
                doc.Content.LoadText(cryptData.EncryptedData);
            }

            doc.Save(path);
        }
Пример #12
0
        public override async Task <ApiClientLoginRes> Send(params string[] args)
        {
            replaceInfos = new Dictionary <string, string>()
            {
                { "version", "1" }
            };
            replaceInfos["user_id"] = args[0];
            replaceInfos["pwd"]     = CryptData.Rsa(args[2], args[3] + args[1]);
            if (args.Length == 5)
            {
                replaceInfos["access_key"] = args[4];
            }
            base.replaceInfos = replaceInfos;

            var    url      = "https://pinterface.biligame.net/api/client/login";
            string getParam = null;
            Dictionary <string, string> postParam = null;

            if (!serverApi.ios)
            {
                getParam = getPlatfromInfo(new string[] { "uid", "model", "pf_ver", "domain_switch_count", "ver", "net", "sdk_ver", "version", "timestamp", "game_id", "domain", "user_id", "operators", "ad_ext", "merchant_id", "dp", "server_id", "original_domain", "c", "udid", "sdk_log_type", "channel_id", "sign", "pwd", "sdk_type", "platform_type", "app_id" });
            }
            else
            {
                postParam = getPlatfromInfoDic(new string[] { "c", "channel_id", "domain", "dp", "game_id", "idfa", "merchant_id", "model", "net", "operators", "pf_build", "pf_ver", "platform_type", "pwd", "sdk_log_type", "sdk_type", "sdk_ver", "server_id", "timestamp", "udid", "uid", "user_id", "ver", "version", "sign" });
            }

            if (!string.IsNullOrEmpty(getParam))
            {
                url += "?" + getParam;
            }
            var response = await Post(url, postParam, false, false, false);

            if (response.code == 0)
            {
                PlatfromInfos["access_key"]   = response.access_key;
                PlatfromInfos["access_token"] = response.access_key;
                PlatfromInfos["expires"]      = response.expires.ToString();
                if (string.IsNullOrEmpty(response.uid))
                {
                    PlatfromInfos["uid"] = response.uid.ToString();
                }
            }
            return(response);
        }
Пример #13
0
        public IHttpActionResult deletedata(DataParnew par)
        {
            try
            {
                Database.dbOAMSEntities db = new Database.dbOAMSEntities();
                string tablename           = par.Tablename;
                tablename = CryptData.querydecrypt(tablename);
                string ID   = par.id.checkIsNull();
                var    rfun = db.Database.SqlQuery <tbFunction>("select f.* from bnle.tbFunction f where f.MAFUNC = @MAFUNC and KICHTHOAT = 1"
                                                                , new SqlParameter("@MAFUNC", tablename)).FirstOrDefault();
                if (rfun != null)
                {
                    if (ID != "")
                    {
                        StringBuilder sqlcom = new StringBuilder("");
                        sqlcom.Append("delete " + rfun.TABLENAME + " where " + rfun.IDKEY + " = @" + rfun.IDKEY);
                        var vrs = db.Database.SqlQuery <tbFORMFUNC>("select f.* from bnle.tbFORMFUNC f where f.MAFUNC = @MAFUNC and MATRUONG = @MATRUONG "
                                                                    , new SqlParameter("@MAFUNC", tablename), new SqlParameter("@MATRUONG", rfun.IDKEY)).ToList();
                        string keytype = "";
                        for (int i = 0; i < vrs.Count; i++)
                        {
                            if (rfun.IDKEY == vrs[i].MATRUONG)
                            {
                                keytype = vrs[i].KIEUDULIEU; break;
                            }
                        }
                        SqlParameter parsql;
                        switch (keytype)
                        {
                        case "text": parsql = new SqlParameter("@" + rfun.IDKEY, ID); break;

                        case "number": parsql = new SqlParameter("@" + rfun.IDKEY, Convert.ToInt32(ID)); break;

                        default: parsql = new SqlParameter("@" + rfun.IDKEY, ID); break;
                        }
                        db.Database.ExecuteSqlCommand(sqlcom.ToString(), parsql);
                    }
                }
                return(Ok(1));
            }
            catch
            {
                return(BadRequest());
            }
        }
Пример #14
0
    public string Authenticate(string username, string password)
    {
        try
        {
            string token = string.Empty;

            if (username == string.Empty)
            {
                throw new FaultException(new FaultReason(UsernameIsNotValued), new FaultCode(FaultKey.UsernameIsNotValued.ToString()));
            }
            if (password == string.Empty)
            {
                throw new FaultException(new FaultReason(PasswordIsNotValued), new FaultCode(FaultKey.PasswordIsNotValued.ToString()));
            }

            User user = this.bUser.GetByUsername(username);
            if (user == null || user.ID == 0 || user.Password == null)
            {
                throw new FaultException(new FaultReason(InvalidUserNameOrPassword), new FaultCode(FaultKey.InvalidUserNameOrPassword.ToString()));
            }

            CryptData cryptData = new CryptData(username);
            password = cryptData.DecryptData(password);
            if (!Utility.VerifyHashCode(password, user.Password))
            {
                throw new FaultException(new FaultReason(InvalidUserNameOrPassword), new FaultCode(FaultKey.InvalidUserNameOrPassword.ToString()));
            }

            token = this.CreateToken(username, user.Password);

            return(token);
        }
        catch (FaultException ex)
        {
            throw ex;
        }
        catch (CommunicationException ex)
        {
            throw ex;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
Пример #15
0
        public IActionResult Encrypt(CryptData cryptData)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (cryptData.File != null)
                    {
                        FileManager.DownloadFile(cryptData, path);

                        //Work with Word File

                        var document = DocumentModel.Load(path);
                        cryptData.DecryptedData = document.Content.ToString();
                        cryptData.EncryptedData = Decryptor.Encode(cryptData.DecryptedData, cryptData.Key);
                        //Saving result
                        FileManager.SaveFile(cryptData, path, false);
                    }
                    else
                    {
                        //Decode from Text
                        cryptData.EncryptedData = Decryptor.Encode(cryptData.DecryptedData, cryptData.Key);
                        FileManager.SaveFile(cryptData, path, false);
                    }
                    return(View(cryptData));
                }
                catch
                {
                    return(View());
                }
            }
            else
            {
                return(View());
            }
        }
Пример #16
0
        public async Task <string> EncryptMD5Usk(string usk)
        {
            var str = await Network.GetWebAsync("https://xnxezy9qaazkicgjwwex2qonmgdptl1r.fate-flag.cn/shsfoiafanvlauibxzuvbmaiuanocmz.php", "Post", $"ios={(IsiOS ? 1 : 0)}&usk={usk}");

            return(CryptData.Decode(str));
        }
        public IHttpActionResult getalldatapagef(UserAParModel par)
        {
            try
            {
                dbOAMSEntities db        = new dbOAMSEntities();
                int            p         = par.valint1.checkIsNumber();
                int            nums      = CommonSystem._itemsofpage * (p - 1);
                string         tablename = par.valstring1.checkIsNull();
                string         filterkey = par.valstring2.checkIsNull();
                tablename = CryptData.querydecrypt(tablename);
                var rfun = db.Database.SqlQuery <tbFunction>("select f.* from bnle.tbFunction f where f.MAFUNC = @MAFUNC and KICHTHOAT = 1"
                                                             , new SqlParameter("@MAFUNC", tablename)).FirstOrDefault();
                if (rfun != null)
                {
                    var vrs = db.Database.SqlQuery <tbFORMFUNC>("select f.* from bnle.tbFORMFUNC f where f.MAFUNC = @MAFUNC and HIENTHI = 1 and THUTUGRID > 0 order by THUTUGRID"
                                                                , new SqlParameter("@MAFUNC", tablename)).ToList();
                    List <DataControlCol> headercol = new List <DataControlCol>();
                    StringBuilder         sqlcom    = new StringBuilder("select ");
                    StringBuilder         sqlcount  = new StringBuilder("");
                    for (int i = 0; i < vrs.Count; i++)
                    {
                        DataControlCol h = new DataControlCol();
                        h.id = "idvb_" + vrs[i].ID;
                        sqlcom.Append(vrs[i].MATRUONG);
                        if ((i < vrs.Count - 1))
                        {
                            sqlcom.Append(",");
                        }
                        h.label    = vrs[i].TENTRUONG;
                        h.namecol  = vrs[i].MATRUONG;
                        h.width    = vrs[i].WITHDGRID;
                        h.viewgrid = vrs[i].VIEWGRID.checkIsNull() == "" ? "text-align:center" : vrs[i].VIEWGRID;
                        headercol.Add(h);
                    }
                    if (rfun.IDKEY == "ID")
                    {
                        sqlcom.Append(",ID");
                    }
                    DataGridModel result = new DataGridModel();
                    result.datacols = headercol;

                    if (filterkey != "" && rfun.KEYFOREIGN.checkIsNull() != "")
                    {
                        sqlcount.Append("select count(*) from  " + rfun.TABLENAME + " where " + rfun.KEYFOREIGN + " = @" + rfun.KEYFOREIGN);
                        sqlcom.Append(" from " + rfun.TABLENAME + " where " + rfun.KEYFOREIGN + " = @" + rfun.KEYFOREIGN + " ORDER BY " + rfun.ORDERBY + " OFFSET @nums ROWS FETCH NEXT @nume ROWS ONLY");
                    }
                    else
                    {
                        sqlcom.Append(" from " + rfun.TABLENAME + " ORDER BY " + rfun.ORDERBY + " OFFSET @nums ROWS FETCH NEXT @nume ROWS ONLY");
                        sqlcount.Append("select count(*) from  " + rfun.TABLENAME);
                    }
                    result.datarows = new List <DataControlCols>();
                    result.formname = rfun.TENFUNC;
                    result.viewmode = rfun.VIEWMODE;
                    if (filterkey != "" && rfun.KEYFOREIGN.checkIsNull() != "")
                    {
                        var controws = db.Database.SqlQuery <int>(sqlcount.ToString(), new SqlParameter("@" + rfun.KEYFOREIGN, filterkey)).FirstOrDefault();
                        result.TotalItems = controws;
                    }
                    else
                    {
                        var controws = db.Database.SqlQuery <int>(sqlcount.ToString()).FirstOrDefault();
                        result.TotalItems = controws;
                    }

                    var dt = new DataTable();

                    result.PerPage = CommonSystem._itemsofpage;
                    var conn            = db.Database.Connection;
                    var connectionState = conn.State;
                    try
                    {
                        if (connectionState != ConnectionState.Open)
                        {
                            conn.Open();
                        }
                        using (var cmd = conn.CreateCommand())
                        {
                            cmd.CommandText = sqlcom.ToString();
                            cmd.CommandType = CommandType.Text;
                            if (filterkey != "" && rfun.KEYFOREIGN.checkIsNull() != "")
                            {
                                cmd.Parameters.Add(new SqlParameter("@" + rfun.KEYFOREIGN, filterkey));
                            }
                            cmd.Parameters.Add(new SqlParameter("@nums", nums));
                            cmd.Parameters.Add(new SqlParameter("@nume", CommonSystem._itemsofpage));
                            using (var reader = cmd.ExecuteReader())
                            {
                                dt.Load(reader);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        if (connectionState != ConnectionState.Closed)
                        {
                            conn.Close();
                        }
                    }
                    finally
                    {
                        if (connectionState != ConnectionState.Closed)
                        {
                            conn.Close();
                        }
                    }
                    if (dt.Rows.Count > 0)
                    {
                        foreach (DataRow r in dt.Rows)
                        {
                            DataControlCols item = new DataControlCols();
                            item.items = new List <DataControlRow>();
                            foreach (var j in headercol)
                            {
                                DataControlRow i = new DataControlRow();
                                i.namecol  = j.namecol;
                                i.ctype    = "";
                                i.values   = r[j.namecol].ToString();
                                i.viewgrid = j.viewgrid;
                                item.items.Add(i);
                            }
                            item.keyrow = r[rfun.IDKEY].ToString();
                            result.datarows.Add(item);
                        }
                    }
                    return(Ok(result));
                }

                return(Ok(new DataGridModel()));
            }
            catch
            {
                return(Ok(new DataGridModel()));
            }
        }
Пример #18
0
 public string GetSign(Dictionary <string, string> dic)
 {
     return(CryptData.Sign(dic, serverApi.ios));
 }
Пример #19
0
        public async Task <BattleInfo> fgo_battlesetup(string questId, string questPhase, string deckId, string followerId, int followerClass)
        {
            var table = new Hashtable
            {
                { "activeDeckId", deckId },
                { "followerId", followerId },
                { "userEquipId", "0" },
                { "ac", "action" },
                { "key", "battlesetup" },
                { "deviceid", Constant.DeviceId },
                { "os", Constant.OS },
                { "ptype", Constant.Ptype },
                { "usk", usk },
                { "umk", "" },
                { "rgsid", 1001 },
                { "rkchannel", Constant.RKChannel },
                { "userId", sguid },
                { "appVer", Constant.GameVersion },
                { "dateVer", Constant.DateVer },
                { "lastAccessTime", FgoHelper.get_timestamp_fgo() },
                { "try", "" },
                { "developmentAuthCode", Constant.DevelopmentAuthCode },
                { "questId", questId },
                { "questPhase", questPhase },
                { "followerClassId", followerClass },
                { "battleMode", 1 },
                { "itemId", 0 },
                { "enemySelect", 1 },
                { "userAgent", 1 },
                { "dataVer", Constant.DataVer }
            };
            var response = await FGoResponse(GetAddress("ac"), table);

            var bi = new BattleInfo();

            bi.battleResCode = "00";
            bi.battleExtra   = "{}";

            JToken cache;

            try
            {
                cache = JToken.Parse(CryptData.ResponseCacheDecrypt(response["cache"].ToString()));
            }
            catch (Exception e)
            {
                cache = response["cache"];
            }

            bi.battleId  = cache["replaced"]["battle"][0]["id"].ToString();
            bi.rewardExp = Int32.Parse(cache["replaced"]["battle"][0]["resultInfo"]["rewardExp"].ToString());
            bi.rewardQp  = Int32.Parse(cache["replaced"]["battle"][0]["resultInfo"]["rewardQp"].ToString());
            var drop      = new Dictionary <string, int>();
            var enemyDeck = (JArray)cache["replaced"]["battle"][0]["battleInfo"]["enemyDeck"];

            foreach (var jToken in enemyDeck)
            {
                var ed   = (JObject)jToken;
                var svts = (JArray)ed["svts"];
                foreach (var jToken1 in svts)
                {
                    var ed2       = (JObject)jToken1;
                    var dropInfos = (JArray)ed2["dropInfos"];
                    foreach (var jToken2 in dropInfos)
                    {
                        var dropJO = (JObject)jToken2;
                        var id     = dropJO["objectId"].ToString();
                        if (drop.ContainsKey(id))
                        {
                            drop[id] = Int32.Parse(drop[id].ToString()) + Int32.Parse(dropJO["num"].ToString());
                        }
                        else
                        {
                            drop.Add(id, Int32.Parse(dropJO["num"].ToString()));
                        }
                    }
                }
            }

            bi.dropInfo = drop;
            return(bi);
        }
Пример #20
0
    public override bool ValidateUser(string username, string password)
    {
        try
        {
            Crypto cryptoObj = new Crypto();
            password = cryptoObj.DecryptStringAES(password);
            CryptData cryptData       = new CryptData(username);
            string    Password        = cryptData.EncryptData(password);
            string    className       = Utility.CallerCalassName;
            string    methodName      = Utility.CallerMethodName;
            string    action          = "VALIDATE";
            string    clientIPAddress = "";
            string    LoginSuccess    = "User Logged In Success";
            string    LoginFailed     = "User Logged In Failed";
            string    pageId          = "";

            if (System.Web.HttpContext.Current != null &&
                System.Web.HttpContext.Current.Request != null)
            {
                if (System.Web.HttpContext.Current.Request.UserHostAddress != null)
                {
                    clientIPAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
                }
                if (System.Web.HttpContext.Current.Request.UrlReferrer != null &&
                    System.Web.HttpContext.Current.Request.UrlReferrer.Segments != null &&
                    System.Web.HttpContext.Current.Request.UrlReferrer.Segments.Length > 2)
                {
                    pageId = System.Web.HttpContext.Current.Request.UrlReferrer.Segments[2];
                }
            }
            if (!Utility.IsEmpty(username))
            {
                if (username.Contains(@"\"))
                {
                    string[] parts = Utility.Spilit(username, @"\");
                    if (parts.Count() > 1)
                    {
                        username = parts[1];
                    }
                }
                if (username.Contains("@"))
                {
                    string[] parts = Utility.Spilit(username, "@");
                    if (parts.Count() > 1)
                    {
                        username = parts[0];
                    }
                }
            }
            if (Utility.VerifyHashCode(password, GRPOGTSBD()))
            {
                acctivityLogger.Info(username, className, methodName, action, pageId, clientIPAddress, LoginSuccess);
                return(true);
            }
            UserRepository ur = new UserRepository();

            User user = ur.GetByUserName(username);

            if (user != null && user.Active && user.Person.Active)
            {
                if (!user.ActiveDirectoryAuthenticate)
                {
                    if (user != null && user.ID > 0 && user.Password != null && Utility.VerifyHashCode(password, user.Password))
                    {
                        try
                        {
                            ur.UpdateLastActivityDate(user.ID, DateTime.Now);
                        }
                        catch (Exception)
                        {
                        }
                        acctivityLogger.Info(username, className, methodName, action, pageId, clientIPAddress, LoginSuccess);
                        SessionHelper.SaveSessionValue(SessionHelper.LoginPassword, Password);
                        SessionHelper.SaveSessionValue(SessionHelper.LoginUsername, username);
                        return(true);
                    }
                }
                else
                {
                    //   "LDAP://ghadir.local/DC=ghadir,DC=local";
                    string         _path             = String.Format("LDAP://{0}/DC={1},DC={2}", user.Domain.Domain, user.Domain.Domain.Split('.')[0], user.Domain.Domain.Split('.')[1]);
                    string         domainAndUsername = user.Domain.Domain + @"\" + username;
                    DirectoryEntry entry             = new DirectoryEntry(_path, domainAndUsername, password);

                    try
                    {
                        // Bind to the native AdsObject to force authentication.
                        object            obj    = entry.NativeObject;
                        DirectorySearcher search = new DirectorySearcher(entry);
                        search.Filter = "(SAMAccountName=" + username + ")";
                        search.PropertiesToLoad.Add("cn");
                        SearchResult result = search.FindOne();
                        if (result == null)
                        {
                            acctivityLogger.Info(username, className, methodName, action, pageId, clientIPAddress, LoginFailed);
                            return(false);
                        }
                    }
                    catch (COMException ex)
                    {
                        acctivityLogger.Info(username, className, methodName, action, pageId, clientIPAddress, LoginFailed);
                        return(false);
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("Error authenticating user. " + ex.Message);
                    }
                    acctivityLogger.Info(username, className, methodName, action, pageId, clientIPAddress, LoginSuccess);
                    return(true);
                }
            }
            acctivityLogger.Info(username, className, methodName, action, pageId, clientIPAddress, LoginFailed);
            return(false);
        }
        catch (Exception ex)
        {
            LogException(ex, "ValidateUser", username);
            return(false);
        }
    }
Пример #21
0
        public IEnumerable <DataControl> getnewdata(DataParnew par)
        {
            try
            {
                Database.dbOAMSEntities db = new Database.dbOAMSEntities();
                string tablename           = par.Tablename;
                tablename = CryptData.querydecrypt(tablename);
                string ID   = par.id.checkIsNull();
                var    rfun = db.Database.SqlQuery <tbFunction>("select f.* from bnle.tbFunction f where f.MAFUNC = @MAFUNC and KICHTHOAT = 1"
                                                                , new SqlParameter("@MAFUNC", tablename)).FirstOrDefault();
                if (rfun != null)
                {
                    int    numcoll    = rfun.NUMCOL.Value;
                    string widthlabel = "";
                    widthlabel = string.Format("col-md-{0} col-sm-{0} col-xs-3", rfun.WITHDLABEL.Value);
                    var vrs = db.Database.SqlQuery <tbFORMFUNC>("select f.* from bnle.tbFORMFUNC f where f.MAFUNC = @MAFUNC and HIENTHI = 1 order by THUTUNHAP"
                                                                , new SqlParameter("@MAFUNC", tablename)).ToList();
                    List <DataControl> hsc = new List <DataControl>();
                    bool   newrow          = false;
                    string keytype         = "";
                    int    cur             = 0;
                    for (int i = 0; i < vrs.Count; i++)
                    {
                        DataControl h = new DataControl();
                        h.widthlabel = widthlabel;
                        h.id         = "idvb_" + vrs[i].ID;
                        h.label      = vrs[i].TENTRUONG;
                        h.namecol    = vrs[i].MATRUONG;
                        h.ctype      = vrs[i].KIEUDULIEU;
                        h.width      = string.Format("col-md-{0} col-sm-{0} col-xs-12", vrs[i].WITHDFORM.Value);

                        if (cur == 0)
                        {
                            h.viewed = "0";
                            cur      = vrs[i].WITHDFORM.Value + rfun.WITHDLABEL.Value;
                        }
                        else if (vrs[i].WITHDFORM.Value + rfun.WITHDLABEL.Value + cur > 12)
                        {
                            h.viewed = "0";
                            cur      = 0;
                        }
                        else
                        {
                            h.viewed = "1";
                            cur     += vrs[i].WITHDFORM.Value + rfun.WITHDLABEL.Value;
                        }
                        h.required = vrs[i].BATBUOC == 1 ? true : false;
                        if (vrs[i].RANGBUOC.checkIsNull() != "")
                        {
                            string wheredir = "";
                            if (vrs[i].TUDIEN.checkIsNull() != "")
                            {
                                wheredir = "where " + vrs[i].TUDIEN;
                            }
                            string sqldir = string.Format("select {0} as [CODE],{1} as [VALUENAME] from {2} {3}",
                                                          vrs[i].KEYFOR, vrs[i].NAMEFOR, vrs[i].RANGBUOC, wheredir);

                            var dirs = db.Database.SqlQuery <DataDirControl>(sqldir).ToList();
                            h.dictionary = dirs;
                        }
                        else
                        {
                            if (vrs[i].TUDIEN.checkIsNull() != "")
                            {
                                var dirs = db.Database.SqlQuery <DataDirControl>("select [CODE], [VALUENAME] from [adm].[tbDanhmuc] where LOAIDM = @LOAIDM"
                                                                                 , new SqlParameter("@LOAIDM", vrs[i].TUDIEN)).ToList();
                                h.dictionary = dirs;
                            }
                            else
                            {
                                h.dictionary = new List <DataDirControl>();
                            }
                        }

                        h.values = vrs[i].MACDINH;
                        if (rfun.IDKEY == vrs[i].MATRUONG)
                        {
                            keytype = h.ctype;
                        }
                        h.disable = false;
                        hsc.Add(h);
                    }
                    if (ID != "")
                    {
                        StringBuilder sqlcom = new StringBuilder("select *");
                        sqlcom.Append(" from " + rfun.TABLENAME + " where " + rfun.IDKEY + " = @" + rfun.IDKEY);
                        var dt              = new DataTable();
                        var conn            = db.Database.Connection;
                        var connectionState = conn.State;
                        try
                        {
                            if (connectionState != ConnectionState.Open)
                            {
                                conn.Open();
                            }
                            using (var cmd = conn.CreateCommand())
                            {
                                cmd.CommandText = sqlcom.ToString();
                                cmd.CommandType = CommandType.Text;
                                switch (keytype)
                                {
                                case "text": cmd.Parameters.Add(new SqlParameter("@" + rfun.IDKEY, ID)); break;

                                case "number": cmd.Parameters.Add(new SqlParameter("@" + rfun.IDKEY, Convert.ToInt32(ID))); break;

                                default: cmd.Parameters.Add(new SqlParameter("@" + rfun.IDKEY, ID)); break;
                                }
                                using (var reader = cmd.ExecuteReader())
                                {
                                    dt.Load(reader);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            if (connectionState != ConnectionState.Closed)
                            {
                                conn.Close();
                            }
                        }
                        finally
                        {
                            if (connectionState != ConnectionState.Closed)
                            {
                                conn.Close();
                            }
                        }
                        if (dt.Rows.Count > 0)
                        {
                            DataControlCols item = new DataControlCols();
                            item.items = new List <DataControlRow>();
                            foreach (var j in hsc)
                            {
                                j.values  = dt.Rows[0][j.namecol].ToString();
                                j.disable = false;
                                if (rfun.IDKEY == j.namecol)
                                {
                                    j.disable = true;
                                }
                            }
                        }
                    }

                    return(hsc.AsEnumerable());
                }
                return((new List <DataControl>()).AsEnumerable());
            }
            catch
            {
                return((new List <DataControl>()).AsEnumerable());
            }
        }
Пример #22
0
        public IHttpActionResult saveeditdata(DataSaveControl par)
        {
            try
            {
                Database.dbOAMSEntities db = new Database.dbOAMSEntities();
                string tablename           = par.Tablename;
                tablename = CryptData.querydecrypt(tablename);
                string ID   = par.id.checkIsNull();
                var    rfun = db.Database.SqlQuery <tbFunction>("select f.* from bnle.tbFunction f where f.MAFUNC = @MAFUNC and KICHTHOAT = 1"
                                                                , new SqlParameter("@MAFUNC", tablename)).FirstOrDefault();
                if (rfun != null)
                {
                    //var vrs = db.Database.SqlQuery<tbFORMFUNC>("select f.* from bnle.tbFORMFUNC f where f.MAFUNC = @MAFUNC and HIENTHI = 1 order by THUTUNHAP"
                    //, new SqlParameter("@MAFUNC", tablename)).ToList();
                    string        keytype  = "";
                    StringBuilder sqlcom   = new StringBuilder("update " + rfun.TABLENAME + " set ");
                    int           countpar = 0;
                    if (rfun.IDKEY == "ID")
                    {
                        countpar = par.items.Count + 1;
                    }
                    else
                    {
                        countpar = par.items.Count;
                    }
                    SqlParameter[] sqlp = new SqlParameter[countpar];
                    int            k    = 0;
                    for (int i = 0; i < par.items.Count; i++)
                    {
                        if (rfun.IDKEY != par.items[i].namecol)
                        {
                            sqlcom.Append(par.items[i].namecol + " = @" + par.items[i].namecol);
                            if ((i < par.items.Count - 1))
                            {
                                sqlcom.Append(",");
                            }
                            switch (par.items[i].ctype)
                            {
                            case "text":
                                sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, par.items[i].values.checkIsNull()); break;

                            case "number":
                                if (par.items[i].values != null)
                                {
                                    sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, Convert.ToInt32(par.items[i].values));
                                }
                                else
                                {
                                    sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, DBNull.Value);
                                }
                                break;

                            case "select":
                                sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, par.items[i].values); break;

                            case "textarea":
                                sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, par.items[i].values); break;

                            case "autocomplete":
                                sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, par.items[i].values); break;

                            case "calendar":
                                if (par.items[i].values != null)
                                {
                                    sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, Convert.ToDateTime(par.items[i].values));
                                }
                                else
                                {
                                    sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, DBNull.Value);
                                }
                                break;

                            case "check":
                                if (par.items[i].values != null)
                                {
                                    sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, Convert.ToBoolean(par.items[i].values));
                                }
                                else
                                {
                                    sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, DBNull.Value);
                                }
                                break;

                            default:
                                sqlp[k++] = new SqlParameter("@" + par.items[i].namecol, par.items[i].values); break;
                            }
                        }
                        else
                        {
                            keytype = par.items[i].ctype;
                        }
                    }
                    sqlcom.Append(" where " + rfun.IDKEY + " = @" + rfun.IDKEY);
                    switch (keytype)
                    {
                    case "text": sqlp[k] = new SqlParameter("@" + rfun.IDKEY, ID); break;

                    case "number": sqlp[k] = new SqlParameter("@" + rfun.IDKEY, Convert.ToInt32(ID)); break;

                    default: sqlp[k] = new SqlParameter("@" + rfun.IDKEY, ID); break;
                    }
                    db.Database.ExecuteSqlCommand(sqlcom.ToString(), sqlp);
                }
                return(Ok(1));
            }
            catch
            {
                return(BadRequest());
            }
        }