public static void SignBySecureKey(Dictionary <string, string> dictionary, string secureKey)
        {
            if (!dictionary.ContainsKey("signMethod"))
            {
                throw new UnionPayException("signMethod must Not null");
            }

            var stringData = GetSignContent(dictionary, true, false);
            var signMethod = dictionary["signMethod"];

            if ("11" == signMethod)
            {
                var strBeforeSha256 = stringData + "&" + SHA256.Compute(secureKey);
                var strAfterSha256  = SHA256.Compute(strBeforeSha256);
                //设置签名域值
                dictionary["signature"] = strAfterSha256;
            }
            else if ("12" == signMethod)
            {
                var strBeforeSm3 = stringData + "&" + SM3.Compute(secureKey);
                var strAfterSm3  = SM3.Compute(strBeforeSm3);
                //设置签名域值
                dictionary["signature"] = strAfterSm3;
            }
            else
            {
                throw new UnionPayException("Error signMethod [" + signMethod + "] in SignBySecureKey. ");
            }
        }
        public static bool ValidateBySecureKey(Dictionary <string, string> dictionary, string secureKey)
        {
            if (!dictionary.ContainsKey("signMethod") || !dictionary.ContainsKey("signature"))
            {
                return(false);
            }

            var result     = false;
            var signMethod = dictionary["signMethod"];

            if ("11" == signMethod)
            {
                var stringSign = dictionary["signature"];
                dictionary.Remove("signature");
                var stringData      = GetSignContent(dictionary, true, false);
                var strBeforeSha256 = stringData + "&" + SHA256.Compute(secureKey);
                var strAfterSha256  = SHA256.Compute(strBeforeSha256);
                result = stringSign == strAfterSha256;
            }
            else if ("12" == signMethod)
            {
                var stringSign = dictionary["signature"];
                dictionary.Remove("signature");
                var stringData   = GetSignContent(dictionary, true, false);
                var strBeforeSm3 = stringData + "&" + SM3.Compute(secureKey);
                var strAfterSm3  = SM3.Compute(strBeforeSm3);
                result = stringSign == strAfterSm3;
            }

            return(result);
        }
Пример #3
0
        public static bool ValidateBySecureKey(Dictionary <string, string> rspData, string secureKey)
        {
            if (!rspData.ContainsKey("signMethod") || !rspData.ContainsKey("signature"))
            {
                return(false);
            }
            var signMethod = rspData["signMethod"];

            var result = false;

            if ("11".Equals(signMethod))
            {
                var stringSign = rspData["signature"];
                rspData.Remove("signature");
                var stringData      = GetSignContent(rspData, true, false);
                var strBeforeSha256 = stringData + "&" + SHA256.Compute(secureKey);
                var strAfterSha256  = SHA256.Compute(strBeforeSha256);
                result = stringSign.Equals(strAfterSha256);
            }
            else if ("12".Equals(signMethod))
            {
                var stringSign = rspData["signature"];
                rspData.Remove("signature");
                var stringData   = GetSignContent(rspData, true, false);
                var strBeforeSm3 = stringData + "&" + SM3.Compute(secureKey);
                var strAfterSm3  = SM3.Compute(strBeforeSm3);
                result = stringSign.Equals(strAfterSm3);
            }
            else
            {
                return(false);
            }

            return(result);
        }
Пример #4
0
        public static void SignBySecureKey(Dictionary <string, string> reqData, string secureKey)
        {
            if (!reqData.ContainsKey("signMethod"))
            {
                throw new Exception("signMethod must Not null");
            }
            var signMethod = reqData["signMethod"];

            var stringData = GetSignContent(reqData, true, false);

            if ("11".Equals(signMethod))
            {
                var strBeforeSha256 = stringData + "&" + SHA256.Compute(secureKey);
                var strAfterSha256  = SHA256.Compute(strBeforeSha256);
                //设置签名域值
                reqData["signature"] = strAfterSha256;
            }
            else if ("12".Equals(signMethod))
            {
                var strBeforeSm3 = stringData + "&" + SM3.Compute(secureKey);
                var strAfterSm3  = SM3.Compute(strBeforeSm3);
                //设置签名域值
                reqData["signature"] = strAfterSm3;
            }
            else
            {
                throw new Exception("Error signMethod [" + signMethod + "] in SignBySecureKey. ");
            }
        }
Пример #5
0
        public async Task <IActionResult> Login(string username, string password, string returnUrl = null)
        {
            password = SM3.GetSM3(password);
            var admin = AdminEntity.Where(x => x.UserName == username && x.Password == password).First();

            if (admin == null)
            {
                ViewBag.errormsg = "用户名或密码错误";
                return(View());
            }
            var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);

            identity.AddClaim(new Claim(ClaimTypes.Sid, admin.Id.ToString()));
            identity.AddClaim(new Claim(ClaimTypes.Name, admin.UserName));
            identity.AddClaim(new Claim(ClaimTypes.Role, Constants.AdminRoleName));
            await AuthExtension.LoginAsync(new AdminAuthenticationAttribute(), HttpContext,
                                           new ClaimsPrincipal(identity));

            if (returnUrl != null)
            {
                return(Redirect(returnUrl));
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
        public void TestCreate()
        {
            var sm3       = SM3.Create("SM3");
            var source    = "abc";
            var hashBytes = sm3.ComputeHash(Encoding.ASCII.GetBytes(source));
            var result    = BitConverter.ToString(hashBytes).Replace("-", string.Empty).ToLower();

            Assert.AreEqual("66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0", result);
        }
Пример #7
0
        public IActionResult Finish(InstallModel installModel)
        {
            DbExtension.InstallDb(installModel.ToDbConfig());
            var admin = new AdminEntity();

            admin.UserName = installModel.AdminUser;
            admin.Password = SM3.GetSM3(installModel.AdminPass);
            admin.Insert();
            var settings = new List <SettingsEntity>();

            settings.Add(new SettingsEntity()
            {
                Name  = "title",
                Value = "JXCMS",
                Type  = "Settings"
            });
            settings.Add(new SettingsEntity()
            {
                Name  = "logo",
                Value = "/images/Logo.png",
                Type  = "Settings"
            });
            settings.Add(new SettingsEntity()
            {
                Name  = "keyword",
                Value = "JXCMS,急速开发CMS",
                Type  = "Settings"
            });
            settings.Add(new SettingsEntity()
            {
                Name  = "description",
                Value = "JXCMS是一款快速开发的CMS程序",
                Type  = "Settings"
            });
            settings.Add(new SettingsEntity()
            {
                Name  = "copyright",
                Value = "JXCMS 2019",
                Type  = "Settings"
            });
            settings.Add(new SettingsEntity()
            {
                Name  = "icp",
                Value = "",
                Type  = "Settings"
            });
            BaseEntity.Orm.Insert(settings).ExecuteInserted();
            System.IO.File.Create("install.lock");
            return(View());
        }