/// <summary> /// OP取得登入資訊 /// </summary> /// <param name="v"></param> /// <returns></returns> public string QueryByOpMid(string v) { ApiResult apiResult; var jsonStr = ""; var decrypt = AesUtility.Decrypt(v); try { var model = decrypt.FromJson <OpMidModel.Input>(); var service = new LoveMemberService(); apiResult = service.Execute(model); jsonStr = JsonConvert.SerializeObject(apiResult); jsonStr = jsonStr.AesEncrypt(); } catch (Exception ex) { LogRecord.Create() .SetMessage(ex.Message) .Error() ; } return(jsonStr); }
public string GetToken(string v) { ApiResult apiResult; var jsonStr = ""; var decrypt = AesUtility.Decrypt(v); try { var model = decrypt.FromJson <GetTokenModel.Input>(); var checkResult = model.IsValid <string>(); if (checkResult.ErrorCode != EnumItem.Get(Ref.ErrorCode._000).FinalValue) { jsonStr = ReturnJsonString(checkResult); return(jsonStr); } var service = new SecurityService(); apiResult = service.Execute(model); jsonStr = ReturnJsonString(apiResult); } catch (Exception ex) { LogRecord.Create() .SetMessage(ex.Message) .Error() ; } return(jsonStr); }
protected bool HandleAuthToken(string token, string empAccount, out ArticleAjaxAuthData authData) { bool isValidToken = true; authData = null; if (string.IsNullOrEmpty(token)) { isValidToken = false; } // decrypt token if (isValidToken) { try { string aesKeyOfBP = ConfigurationManager.AppSettings["AesKeyOfBP"]; string basicIV = ConfigurationManager.AppSettings["AesIV"]; string authJson = AesUtility.Decrypt(token, aesKeyOfBP, basicIV); authData = JsonConvert.DeserializeObject <ArticleAjaxAuthData>(authJson); } catch (Exception ex) { logger.Error("", ex); isValidToken = false; } } // check account if (isValidToken) { if (empAccount != authData.EmpAccount) { isValidToken = false; } } // check postDate if (isValidToken) { if ((DateTime.Now - authData.PostDate).TotalHours >= 24) { isValidToken = false; } } return(isValidToken); }
public void EncryptAndDecrypt() { var inputList = new List <string>(); inputList.Add("test123456789"); inputList.Add("abcdefg"); inputList.Add(Guid.NewGuid().ToString("N") + DateTime.Now.ToString("yyyyMMddhhmmss")); inputList.Add(Guid.NewGuid().ToString("N") + DateTime.Now.ToString("yyyyMMddhhmmss")); foreach (var item in inputList) { var encrypt = AesUtility.Encrypt(item); var decrypt = AesUtility.Decrypt(encrypt); var actual = item; var expected = decrypt; Assert.AreEqual(expected, actual); } }
protected bool HandlePreviewToken() { bool result = false; if (qsPreview == null) { return(false); } if (qsPreview == "1") { // redirect to back-stage to get authorization string websiteUrl = ConfigurationManager.AppSettings["WebsiteUrl"]; string backendSsoAuthenticatorUrl = ConfigurationManager.AppSettings["BackendSsoAuthenticatorUrl"]; if (string.IsNullOrEmpty(backendSsoAuthenticatorUrl)) { logger.Error("Invalid AppSettings/BackendSsoAuthenticatorUrl"); return(false); } string valueInToken = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string token = AesUtility.Encrypt(valueInToken, aesKeyOfFP, basicIV); string location = websiteUrl + "/" + Request.AppRelativeCurrentExecutionFilePath.Replace("~/", ""); string url = StringUtility.SetParaValueInUrl(backendSsoAuthenticatorUrl, "token", Server.UrlEncode(token)); url = StringUtility.SetParaValueInUrl(url, "location", Server.UrlEncode(location)); url = AppendCurrentQueryString(url); Response.Redirect(url); } else { try { // decrypt token string valueInToken = AesUtility.Decrypt(qsPreview, aesKeyOfBP, basicIV); PreviewArticle previewArticle = JsonConvert.DeserializeObject <PreviewArticle>(valueInToken); if (!string.IsNullOrEmpty(previewArticle.EmpAccount)) { if (DateTime.Now <= previewArticle.ValidTime) { articleData.ArticleId = new Guid(previewArticle.ArticleId); result = true; isPreviewMode = true; logger.DebugFormat("{0} previews {1} (id:[{2}])(lang:{3}).", previewArticle.EmpAccount, Request.AppRelativeCurrentExecutionFilePath, previewArticle.ArticleId, qsLangNo); } else { logger.InfoFormat("{0} previews {1} but exceed valid time.", previewArticle.EmpAccount, Request.AppRelativeCurrentExecutionFilePath); } } else { logger.InfoFormat("user previews {0} but not logged in.", Request.AppRelativeCurrentExecutionFilePath); } } catch (Exception ex) { logger.Error("", ex); } } return(result); }