public void GigadeApiRequestConstructorTest() { GigadeApiRequest request = new GigadeApiRequest(); var result = request.Request<PlainTextViewModel, AesResult>("api/Utility/EncryptWithAes", new PlainTextViewModel { text = "13135" }); Assert.Inconclusive("TODO: 实现用来验证目标的代码result" + result.result.text); }
/// <summary> /// 加密解密單一字串 /// </summary> /// <param name="plainText">需要加密的list</param> /// <param name="isEncrypt">true加密,false解密</param> /// <returns>加密或者解密之後的結果</returns> public static string EncryptDecryptTextByApi(string plainText, bool isEncrypt = true) { try { List<PlainTextViewModel> paintList = new List<PlainTextViewModel>(); PlainTextViewModel paintModel = new PlainTextViewModel(); paintModel.text = plainText; paintList.Add(paintModel); GigadeApiRequest request = new GigadeApiRequest(); string url = string.Empty; if (isEncrypt) { url = "api/Utility/EncryptWithAes"; } else { url = "api/Utility/DecryptWithAes"; } var result = request.Request<List<PlainTextViewModel>, List<AesResult>>(url, paintList); if (result.success) { List<AesResult> aesResult = result.result; return aesResult.FirstOrDefault<AesResult>().computed_text; } else { return null; } } catch (Exception ex) { throw ex; } }
/// <summary> /// 加密解密 /// </summary> /// <param name="plainText">需要加密的list</param> /// <param name="isEncrypt">true加密,false解密</param> /// <returns>加密或者解密之後的結果</returns> public static List<AesResult> EncryptDecryptListByApi(List<PlainTextViewModel> plainModeList, bool isEncrypt = true) { try { GigadeApiRequest request = new GigadeApiRequest(); string url = string.Empty; if (isEncrypt) { url = "api/Utility/EncryptWithAes"; } else { url = "api/Utility/DecryptWithAes"; } var result = request.Request<List<PlainTextViewModel>, List<AesResult>>("api/Utility/EncryptWithAes", plainModeList); if (result.success) { return result.result; } else { return null; } } catch (Exception ex) { throw ex; } }
public ActionResult Login() { object notice = new object(); if (string.IsNullOrEmpty(Request.Params["txtEmail"])) { notice = "{result:'Notice',msg:'" + Resources.Login.NOTICE_NO_EMAIL + "'}"; ViewBag.notice = notice; return View("Index"); } string IsRemember = Request.Params["chkRememberEmail"] != null ? Request.Params["chkRememberEmail"] : "false"; string email = Request.Params["txtEmail"].Trim(); string passwd = Request.Params["hid_password"].Trim(); string challenge_id = Request.Params["challenge_id"]; int CookieExpireTime = 10; ViewBag.LoginEmail = null; ICallerImplMgr callerMgr = new CallerMgr(connectionString); Caller caller = null; UserLoginAttemptsMgr ulaMgr = new UserLoginAttemptsMgr(connectionString); //記錄/清空cookie BLL.gigade.Common.CommonFunction.Cookie_Set("UserInfo", "email", email, IsRemember, CookieExpireTime); if (!Regex.IsMatch(email, @"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$")) { notice = "{result:'Notice',msg:'" + Resources.Login.NOTICE_EMAIL_FORMAT_ERROR + "'}"; ViewBag.notice = notice; if (IsRemember == "true") { ViewBag.LoginEmail = email; } return View("Index"); } if (passwd == "") { notice = "{result:'Notice',msg:'" + Resources.Login.NOTICE_NO_PASSWD + "'}"; ViewBag.notice = notice; if (IsRemember == "true") { ViewBag.LoginEmail = email; } return View("Index"); } try { caller = callerMgr.Login(email); } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } if (caller == null) { notice = "{result:'Error',msg:'" + Resources.Login.ERROR_EMAIL_PASSWD_ERROR + "'}"; ViewBag.notice = notice; if (IsRemember == "true") { ViewBag.LoginEmail = email; } UserLoginAttempts ula = new UserLoginAttempts(); ula.login_mail = email; ula.login_ipfrom = CommonFunction.GetIP4Address(Request.UserHostAddress.ToString()); ula.login_type = 3; ulaMgr.Insert(ula); return View("Index"); } else { if (caller.user_status == 2) { notice = "{result:'Error',msg:'" + Resources.Login.NOTICE_EMAIL_STOP + "'}"; if (IsRemember == "true") { ViewBag.LoginEmail = email; } UserLoginAttempts ula = new UserLoginAttempts(); ula.login_mail = email; ula.login_ipfrom = CommonFunction.GetIP4Address(Request.UserHostAddress.ToString()); ula.login_type = 3; ulaMgr.Insert(ula); ViewBag.notice = notice; return View("Index"); } if (caller.user_status == 3) { notice = "{result:'Error',msg:'" + Resources.Login.NOTICE_EMAIL_DELETE + "'}"; if (IsRemember == "true") { ViewBag.LoginEmail = email; } UserLoginAttempts ula = new UserLoginAttempts(); ula.login_mail = caller.user_email; ula.login_ipfrom = CommonFunction.GetIP4Address(Request.UserHostAddress.ToString()); ula.login_type = 3; ulaMgr.Insert(ula); ViewBag.notice = notice; return View("Index"); } string challenge_key = ""; try { challenge_key = callerMgr.Get_Challenge_Key(challenge_id); callerMgr.Kill_Challenge_Id(challenge_id); } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } BLL.gigade.Common.HashEncrypt hash = new BLL.gigade.Common.HashEncrypt(); string newpasswd = hash.SHA256Encrypt(caller.user_password + challenge_key); if (passwd != newpasswd) { try { callerMgr.Add_Login_Attempts(caller.user_id); } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } caller.user_login_attempts++; string tempStr = string.Format(Resources.Login.ERROR_PASSWD_ERROR_TIMES, caller.user_login_attempts, 5);//後台登入改為5次 edit by shuangshuang0420j 201504101555 from hill notice = "{result:'Error',msg:'" + tempStr + "'}"; ViewBag.notice = notice; ViewBag.challenge_id = callerMgr.Add_Challenge(); ViewBag.challenge_key = callerMgr.Get_Challenge_Key(ViewBag.challenge_id); //後台登入改為5次并計入UserLoginAttempts表 edit by shuangshuang0420j 201504101555 from hill UserLoginAttempts ula = new UserLoginAttempts(); ula.login_mail = caller.user_email; ula.login_ipfrom = CommonFunction.GetIP4Address(Request.UserHostAddress.ToString()); ula.login_type = 3; ulaMgr.Insert(ula); if (caller.user_login_attempts >= 5)//後台登入改為5次 edit by shuangshuang0420j 201504101555 from hill { try { callerMgr.Modify_User_Status(caller.user_id, 2); } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } } if (IsRemember == "true") { ViewBag.LoginEmail = email; } return View("Index"); } if (caller.user_status == 0) { notice = "{result:'Notice',msg:'" + Resources.Login.NOTICE_FIRST_LOGIN + "'}"; ViewBag.notice = notice; ViewBag.isFirst = 1; ViewBag.uid = caller.user_id; ViewBag.email = caller.user_email; return View("ChangePasswd"); } try { //添加登錄記錄 callerMgr.Add_Manage_Login(caller.user_id); //修改登入數據 callerMgr.Modify_User_Login_Data(caller.user_id); } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } caller.user_password = ""; try { string xmlPath = ConfigurationManager.AppSettings["SiteConfig"];//XML的設置 string path = Server.MapPath(xmlPath); SiteConfigMgr _siteConfigMgr = new SiteConfigMgr(path); string APIServer = _siteConfigMgr.GetConfigByName("APIServer").Value; GigadeApiRequest request = new GigadeApiRequest(APIServer); var result = request.Request<SuppliersLoginViewModel, SuppliersLoginResult>("api/admin/account/login", new SuppliersLoginViewModel() { user_email = email, user_password = newpasswd, user_halfToken = challenge_key, login_ipfrom = CommonFunction.GetIP4Address(Request.UserHostAddress.ToString()) }); var back = result.result; Session["AccessToken"] = back.userToken.user_token; } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } Session["caller"] = caller; return Redirect("../home"); } }
/// <summary> /// 修改期望到貨日 /// </summary> /// <param name="apiServer"></param> /// <param name="expertArriveDateViewModel"></param> /// <returns></returns> public bool ModifyExpertArriveDate(string apiServer, ModifyExpertArriveDateViewModel expertArriveDateViewModel) { try { GigadeApiRequest request = new GigadeApiRequest(apiServer); var result = request.Request<ModifyExpertArriveDateViewModel, object>("api/admin/Logistics/ModifyExpertArriveDate", expertArriveDateViewModel); if (Convert.ToBoolean(result.result)) { return true; } else { return false; } } catch (Exception ex) { throw new Exception("DeliverChangeLogMgr-->isCanModifyExpertArriveDate-->" + ex.Message, ex); } }