public LoginResult Login([FromBody] LoginModel model)
        {
            var result = new LoginResult();

            if (dict.TryGetValue(model.Account, out User user))
            {
                if (user.Password == model.Password)
                {
                    var info = new VerifyInfo()
                    {
                        Account    = user.Name,
                        CreateTime = DateTime.Now,
                        Id         = user.Id.ToString(),
                        Key        = Guid.NewGuid().ToString("N"),
                        Name       = model.Account,
                        Roles      = new string[] { user.Role }
                    };
                    var token = authorizeModule.CreateAuthorization(info);
                    result.Token   = token;
                    result.Result  = 1;
                    result.Message = "ok";
                }
                else
                {
                    result.Result  = 0;
                    result.Message = "password error";
                }
            }
            else
            {
                result.Result  = 0;
                result.Message = "user error";
            }
            return(result);
        }
            /// <summary>
            /// 资源校验器轮询。
            /// </summary>
            /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param>
            /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param>
            public void Update(float elapseSeconds, float realElapseSeconds)
            {
                if (!m_LoadReadWriteVersionListComplete)
                {
                    return;
                }

                int length = 0;

                while (m_VerifyResourceIndex < m_VerifyInfos.Count)
                {
                    VerifyInfo verifyInfo = m_VerifyInfos[m_VerifyResourceIndex];
                    length += verifyInfo.Length;
                    if (VerifyResource(verifyInfo))
                    {
                        m_VerifyResourceIndex++;
                        if (ResourceVerifySuccess != null)
                        {
                            ResourceVerifySuccess(verifyInfo.ResourceName, verifyInfo.Length);
                        }
                    }
                    else
                    {
                        m_FailureFlag = true;
                        m_VerifyInfos.RemoveAt(m_VerifyResourceIndex);
                        if (ResourceVerifyFailure != null)
                        {
                            ResourceVerifyFailure(verifyInfo.ResourceName);
                        }
                    }

                    if (length >= m_VerifyResourceLengthPerFrame)
                    {
                        return;
                    }
                }

                m_LoadReadWriteVersionListComplete = false;
                if (m_FailureFlag)
                {
                    GenerateReadWriteVersionList();
                }

                if (ResourceVerifyComplete != null)
                {
                    ResourceVerifyComplete(!m_FailureFlag);
                }
            }
            private bool VerifyResource(VerifyInfo verifyInfo)
            {
                if (verifyInfo.UseFileSystem)
                {
                    IFileSystem         fileSystem = m_ResourceManager.GetFileSystem(verifyInfo.FileSystemName, false);
                    string              fileName   = verifyInfo.ResourceName.FullName;
                    FileSystem.FileInfo fileInfo   = fileSystem.GetFileInfo(fileName);
                    if (!fileInfo.IsValid)
                    {
                        return(false);
                    }

                    int length = fileInfo.Length;
                    if (length == verifyInfo.Length)
                    {
                        m_ResourceManager.PrepareCachedStream();
                        fileSystem.ReadFile(fileName, m_ResourceManager.m_CachedStream);
                        m_ResourceManager.m_CachedStream.Position = 0L;
                        int hashCode = 0;
                        if (verifyInfo.LoadType == LoadType.LoadFromMemoryAndQuickDecrypt || verifyInfo.LoadType == LoadType.LoadFromMemoryAndDecrypt ||
                            verifyInfo.LoadType == LoadType.LoadFromBinaryAndQuickDecrypt || verifyInfo.LoadType == LoadType.LoadFromBinaryAndDecrypt)
                        {
                            Utility.Converter.GetBytes(verifyInfo.HashCode, m_CachedHashBytes);
                            if (verifyInfo.LoadType == LoadType.LoadFromMemoryAndQuickDecrypt || verifyInfo.LoadType == LoadType.LoadFromBinaryAndQuickDecrypt)
                            {
                                hashCode = Utility.Verifier.GetCrc32(m_ResourceManager.m_CachedStream, m_CachedHashBytes, Utility.Encryption.QuickEncryptLength);
                            }
                            else if (verifyInfo.LoadType == LoadType.LoadFromMemoryAndDecrypt || verifyInfo.LoadType == LoadType.LoadFromBinaryAndDecrypt)
                            {
                                hashCode = Utility.Verifier.GetCrc32(m_ResourceManager.m_CachedStream, m_CachedHashBytes, length);
                            }

                            Array.Clear(m_CachedHashBytes, 0, CachedHashBytesLength);
                        }
                        else
                        {
                            hashCode = Utility.Verifier.GetCrc32(m_ResourceManager.m_CachedStream);
                        }

                        if (hashCode == verifyInfo.HashCode)
                        {
                            return(true);
                        }
                    }

                    fileSystem.DeleteFile(fileName);
                    return(false);
                }
                else
                {
                    string resourcePath = Utility.Path.GetRegularPath(Path.Combine(m_ResourceManager.ReadWritePath, verifyInfo.ResourceName.FullName));
                    if (!File.Exists(resourcePath))
                    {
                        return(false);
                    }

                    using (FileStream fileStream = new FileStream(resourcePath, FileMode.Open, FileAccess.Read))
                    {
                        int length = (int)fileStream.Length;
                        if (length == verifyInfo.Length)
                        {
                            int hashCode = 0;
                            if (verifyInfo.LoadType == LoadType.LoadFromMemoryAndQuickDecrypt || verifyInfo.LoadType == LoadType.LoadFromMemoryAndDecrypt ||
                                verifyInfo.LoadType == LoadType.LoadFromBinaryAndQuickDecrypt || verifyInfo.LoadType == LoadType.LoadFromBinaryAndDecrypt)
                            {
                                Utility.Converter.GetBytes(verifyInfo.HashCode, m_CachedHashBytes);
                                if (verifyInfo.LoadType == LoadType.LoadFromMemoryAndQuickDecrypt || verifyInfo.LoadType == LoadType.LoadFromBinaryAndQuickDecrypt)
                                {
                                    hashCode = Utility.Verifier.GetCrc32(fileStream, m_CachedHashBytes, Utility.Encryption.QuickEncryptLength);
                                }
                                else if (verifyInfo.LoadType == LoadType.LoadFromMemoryAndDecrypt || verifyInfo.LoadType == LoadType.LoadFromBinaryAndDecrypt)
                                {
                                    hashCode = Utility.Verifier.GetCrc32(fileStream, m_CachedHashBytes, length);
                                }

                                Array.Clear(m_CachedHashBytes, 0, CachedHashBytesLength);
                            }
                            else
                            {
                                hashCode = Utility.Verifier.GetCrc32(fileStream);
                            }

                            if (hashCode == verifyInfo.HashCode)
                            {
                                return(true);
                            }
                        }
                    }

                    File.Delete(resourcePath);
                    return(false);
                }
            }
示例#4
0
        public ActionResult ManageGrid(JGridRequest packet)
        {
            try
            {
                JGridPacket p      = new JGridPacket();
                FilterData  filter = new FilterData();
                if (packet.Data != null)
                {
                    filter = JsonConvert.DeserializeObject <FilterData>(packet.Data.ToString());
                    if (packet.RequestType == "ShowEdit" || packet.RequestType == "Update")
                    {
                        if (filter.OverrideModel != null && packet.IsOverride == true)
                        {
                            packet.ModelName = filter.OverrideModel;
                        }
                    }
                }

                if (packet.RequestType == "Show")
                {
                    //packet.ModelName = packet.ModelName.Contains("View") == true ? packet.ModelName : packet.ModelName + "View";
                    if (!packet.IsOverride)
                    {
                        packet.ModelName = packet.ModelName.Contains("View") == true ? packet.ModelName : packet.ModelName + "View";
                    }
                }

                Assembly[] asm  = AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName.Contains("BDCO")).ToArray();
                Type       item = null;
                for (int i = 0; i < asm.Length; i++)
                {
                    item = asm[i].GetTypes().Where(x => x.Name == packet.ModelName).FirstOrDefault();
                    if (item != null)
                    {
                        break;
                    }
                }


                var jgridType   = typeof(JGridHelper <>);
                var jgridObject = jgridType.MakeGenericType(item);
                var obj         = Activator.CreateInstance(jgridObject);
                switch (packet.RequestType)
                {
                case "Show":
                    p.Record = MethodInvoker("ShowList", obj, new object[] { new QuerySelector().getSelector(packet) });
                    break;

                case "Insert":
                    p.Record = MethodInvoker("Insert", obj, new object[] { packet, asm, item });
                    break;

                case "Update":
                    var requestDataDictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(packet.Data);
                    requestDataDictionary.Add("ModifiedBy", User.CurrentUserID());
                    requestDataDictionary.Add("ModificationDate", DateTime.Now.ToString());
                    packet.Data = JsonConvert.SerializeObject(requestDataDictionary);
                    p.Record    = MethodInvoker("EditDelete", obj, new object[] { 1, packet, asm, User.CurrentUserID() });
                    break;

                case "Delete":
                    p.Record = MethodInvoker("EditDelete", obj, new object[] { 2, packet, asm, User.CurrentUserID() });
                    break;

                case "VerifyInfo":
                    var pk         = _utility.GetPrimaryKeyInfo(item);
                    var verifyInfo = new VerifyInfo();
                    jgridObject = jgridType.MakeGenericType(verifyInfo.GetType());
                    obj         = Activator.CreateInstance(jgridObject);

                    var jsonVerifiyInfo = MethodInvoker("GetVerifyInfo", obj, new object[] { packet, pk.Name });
                    return(Json(new { success = true, Data = jsonVerifiyInfo }, JsonRequestBehavior.AllowGet));

                case "Verify":
                    var requestSourceDictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(packet.Data);
                    if (requestSourceDictionary.ContainsKey("IsVerified"))
                    {
                        if (requestSourceDictionary.FirstOrDefault(x => x.Key == "IsVerified").Value.ToString() == "2")
                        {
                            SendPushMessage();
                        }
                    }


                    var user     = User.CurrentUserID() == 0 ? 0 : User.CurrentUserID();
                    var userName = User.DisplayName() == "" ? "" : User.DisplayName();
                    requestSourceDictionary.Add("VerifiedBy", user);
                    requestSourceDictionary.Add("VerificationDate", DateTime.Now);
                    packet.Data = JsonConvert.SerializeObject(requestSourceDictionary);
                    p.Record    = MethodInvoker("EditDelete", obj, new object[] { 1, packet, asm, User.CurrentUserID() });
                    return(Json(new { success = true, Data = "Verification Successful", VerifierName = userName, VerificationDate = DateTime.Now }, JsonRequestBehavior.AllowGet));

                case "Export":
                    break;

                case "ShowEdit":
                    //packet.ControllerName = "EsFollowUp";
                    var    json     = MethodInvoker("Show", obj, new object[] { packet });
                    string viewName = packet.ControllerName != "QB" ? packet.ModelName : packet.ControllerName;
                    var    html     = RenderRazorViewToString("~/Views/" + packet.ControllerName + "/" + viewName + ".cshtml").Trim();
                    return(Json(new { success = true, json, html }, JsonRequestBehavior.AllowGet));

                case "ShowCreate":
                    html = RenderRazorViewToString("~/Views/" + packet.ControllerName + "/" + packet.ModelName + ".cshtml").Trim();
                    return(Json(new { success = true, html }, JsonRequestBehavior.AllowGet));

                case "Map":
                    List <MapJson> lst = new List <MapJson>();
                    lst.Add(new MapJson()
                    {
                        Id = 4, Location = "GMP 1 (1-Dec-2018)", Latitude = "23.7491206", Longitude = "90.3602757"
                    });
                    lst.Add(new MapJson()
                    {
                        Id = 5, Location = "GMP 2 (1-Jan-2019)", Latitude = "23.7478959", Longitude = "90.3629236"
                    });
                    lst.Add(new MapJson()
                    {
                        Id = 3, Location = "GMP 3 (1-Feb-2019)", Latitude = "23.7489088", Longitude = "90.3649791"
                    });
                    lst.Add(new MapJson()
                    {
                        Id = 2, Location = "GMP 4 (1-Mar-2019)", Latitude = "23.7477852", Longitude = "90.3629741"
                    });
                    lst.Add(new MapJson()
                    {
                        Id = 1, Location = "GMP 5 (1-Apr-2019)", Latitude = "23.7390734", Longitude = "90.3609762"
                    });
                    return(Json(new { success = true, Data = lst }, JsonRequestBehavior.AllowGet));

                case "Chart":
                    var jsonData = MethodInvoker("ChartData", obj, new object[] { new ChartSelector().getSelector(packet) });
                    return(Json(new { success = true, Data = jsonData }, JsonRequestBehavior.AllowGet));
                }
                return(Json(new { success = true, Data = p }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, Data = ex.Message }, JsonRequestBehavior.AllowGet));
            }
        }