private async Task <string> DefaultLoginAndGetMCKey() { var userName = string.Empty; var userPwd = string.Empty; var AesResult = await GetAesKey(); return(await _cacheManager.GetCache(AppConsts.Cache_MCAuthKey).GetAsync <string, string>("DefaultMCAuthKey", async c => { UserLoginSoapClient client = new UserLoginSoapClient(UserLoginSoapClient.EndpointConfiguration.UserLoginSoap); var EncryptPassword = ""; try { EncryptPassword = AesCryptoService.Encrypt(defaultUserPwd, AesResult.CryptAESKey, AesResult.CryptAESIV); } catch { AesResult = await GetAesKey(true); EncryptPassword = AesCryptoService.Encrypt(defaultUserPwd, AesResult.CryptAESKey, AesResult.CryptAESIV); } var result = await client.LoginExAsync(new LoginExRequest { UserName = defaultUserName, EncryptPassword = EncryptPassword, DeviceCode = deviceCode }); return result.AuthKey; })); }
/// <summary> /// 获取会员AuthKey /// </summary> /// <param name="userName"></param> /// <param name="password"></param> /// <returns></returns> public async Task <string> GetUserMemberAuthKey(string userName, string password) { var AesResult = await GetAesKey(); return((string)await _cacheManager.GetCache(AppConsts.Cache_MCAuthKey).GetAsync <string, string>($"{userName}.Activity", async c => { UserLoginSoapClient client = new UserLoginSoapClient(UserLoginSoapClient.EndpointConfiguration.UserLoginSoap); var EncryptPassword = ""; try { EncryptPassword = AesCryptoService.Encrypt(password, AesResult.CryptAESKey, AesResult.CryptAESIV); } catch { AesResult = await GetAesKey(true); EncryptPassword = AesCryptoService.Encrypt(password, AesResult.CryptAESKey, AesResult.CryptAESIV); } //获取最新的AuthKey var result = await client.LoginExAsync(new LoginExRequest { UserName = userName, EncryptPassword = EncryptPassword, DeviceCode = deviceCode }); return result.AuthKey; })); }
public void WidgetPerformUpdate(Action <NCUpdateResult> completionHandler) { // Perform any setup necessary in order to update the view. // If an error is encoutered, use NCUpdateResultFailed // If there's no update required, use NCUpdateResultNoData // If there's an update, use NCUpdateResultNewData var result = NCUpdateResult.NewData; MainLabel.Text = "Hey Beauty"; Log("result is NewData"); var cs = new AesCryptoService(); Log("Got crypto"); var pas = new PersistentAuthService(cs); Log("Got auth"); var sfs = new SundaysFunctionService(pas); Log("Got sundays"); var a = pas.GetAuth(); Log($"Got auth. Is valid: {(a?.IsValid ?? false)}"); //var s = sfs.Get(DateTime.Today, DateTime.Today).GetAwaiter().GetResult(); //Log($"Got {(s?.Count().ToString() ?? "(null)")} sundays"); //var sundayService = new SundaysFunctionService( // new PersistentAuthService( // new AesCryptoService() // ) //); //var from = DateTime.Today.AddDays(-7); //var to = DateTime.Today; //try //{ // var sundays = sundayService.Get(from, to).GetAwaiter().GetResult().ToList(); // result = sundays?.Count > 0 ? NCUpdateResult.NewData : NCUpdateResult.NoData; //} //catch //{ // result = NCUpdateResult.Failed; //} Log($"completing with {result}"); completionHandler(result); }
public async Task <string> GetDeliveryAddressJson() { string AuthKey = Request.Form["AuthKey"].ToString(); string AesKey = Request.Form["AesKey"].ToString(); string Iv = Request.Form["Iv"].ToString(); MemberServiceSoapClient client = new MemberServiceSoapClient(MemberServiceSoapClient.EndpointConfiguration.MemberServiceSoap); var result = await client.GetDeliveryAddressJsonAsync(AuthKey); return(AesCryptoService.DecryptText(result, AesKey, Iv)); }
public async Task <int> DeliveryAddressAddJson() { string AuthKey = Request.Form["AuthKey"].ToString(); string AesKey = Request.Form["AesKey"].ToString(); string Iv = Request.Form["Iv"].ToString(); string Addr = Request.Form["Addr"].ToString(); MemberServiceSoapClient client = new MemberServiceSoapClient(MemberServiceSoapClient.EndpointConfiguration.MemberServiceSoap); var aesAddr = AesCryptoService.Encrypt(Addr, AesKey, Iv); return(await client.DeliveryAddressAddJsonAsync(AuthKey, aesAddr)); }
public async Task EncryptAsync_WithInvalidInputs_ShouldThrowException() { var textToEncrypt = "text for encryption"; var encrypter = new AesCryptoService(null); await Assert.ThrowsAsync <ArgumentNullException>(async() => await encrypter.EncryptAsync(null, _tenant, _key, textToEncrypt)); await Assert.ThrowsAsync <ArgumentNullException>(async() => await encrypter.EncryptAsync(_application, null, _key, textToEncrypt)); await Assert.ThrowsAsync <ArgumentNullException>(async() => await encrypter.EncryptAsync(_application, _tenant, null, textToEncrypt)); await Assert.ThrowsAsync <ArgumentNullException>(async() => await encrypter.EncryptAsync(_application, _tenant, _key, "")); }
public void Encrypt_WithInvalidInputs_Should_Throw_Exception() { var textToEncrypt = "text for encryption"; var encrypter = new AesCryptoService(null); Assert.Throws <ArgumentNullException>(() => encrypter.Encrypt(null, _tenant, _key, textToEncrypt)); Assert.Throws <ArgumentNullException>(() => encrypter.Encrypt(_application, null, _key, textToEncrypt)); Assert.Throws <ArgumentNullException>(() => encrypter.Encrypt(_application, _tenant, null, textToEncrypt)); Assert.Throws <ArgumentNullException>(() => encrypter.Encrypt(_application, _tenant, _key, "")); }
public async Task <string> GetPointsChangeDetailJson() { string AuthKey = Request.Form["AuthKey"].ToString(); string AesKey = Request.Form["AesKey"].ToString(); string Iv = Request.Form["Iv"].ToString(); DateTime BeginDate = DateTime.MinValue; DateTime EndDate = DateTime.MinValue; DateTime.TryParse(Request.Form["BeginDate"].ToString(), out BeginDate); DateTime.TryParse(Request.Form["EndDate"].ToString(), out EndDate); MemberServiceSoapClient client = new MemberServiceSoapClient(MemberServiceSoapClient.EndpointConfiguration.MemberServiceSoap); var result = await client.GetPointsChangeDetailJsonAsync(AuthKey, BeginDate, EndDate); return(AesCryptoService.DecryptText(result, AesKey, Iv)); }
/// <summary> /// 获取活动类型 /// </summary> /// <param name="activity"></param> /// <returns></returns> public async Task <ActivityInfo> GetActivity(int activityid) { _logger.Info("活动id为:" + activityid); string cachekeyname_activity = "ActivityInfo_" + activityid.ToString(); ActivityInfo activi = (ActivityInfo)await _cacheManager.GetCache(AppConsts.Cache_ActivityInfo).GetOrDefaultAsync(cachekeyname_activity); if (activi == null) { _logger.Info("没有缓存,继续进入:" + activityid); string jsonStr = string.Empty; string authKey = await GetDefaultAuthKey();//获取默认账户AuthKey _logger.Info("获取默认账户authkey:" + authKey); yilibabyActivity.ActivityServiceSoapClient activity = new yilibabyActivity.ActivityServiceSoapClient(yilibabyActivity.ActivityServiceSoapClient.EndpointConfiguration.ActivityServiceSoap12); { _logger.Info($"WCF地址{activity.Endpoint.Address.ToString()}"); jsonStr = await activity.GetActivityInfoJsonAsync(authKey, activityid); if (string.IsNullOrWhiteSpace(jsonStr)) { jsonStr = activity.GetActivityInfoJsonAsync(authKey, activityid).Result; } } if (!string.IsNullOrWhiteSpace(jsonStr) && jsonStr != "null") { var aesResult = await GetAesKey(); _logger.Info("获取默认账户解码key:" + aesResult); string plainJson = AesCryptoService.Decrypt(jsonStr, aesResult.CryptAESKey, aesResult.CryptAESIV); _logger.Info("解码内容:" + plainJson); activi = JsonConvert.DeserializeObject <ActivityInfo>(plainJson); if (activi != null && activi.ID > 0) { _logger.Info("保存活动缓存"); //缓存数据对象 await _cacheManager.GetCache(AppConsts.Cache_ActivityInfo).SetAsync(cachekeyname_activity, activi); } } } return(activi); }
public async Task <ResetPasswordResponse> ResetPassword() { string mgccAuthKey = Request.Form["AuthKey"].ToString(); string mobilePhone = Request.Form["Mobile"].ToString(); string newPassword = Request.Form["NewPwd"].ToString(); int verifyID = int.Parse(Request.Form["VerifyID"].ToString()); string verifyCode = Request.Form["VerifyCode"].ToString(); string AesKey = Request.Form["AesKey"].ToString(); string Iv = Request.Form["Iv"].ToString(); UserLoginSoapClient client2 = new UserLoginSoapClient(UserLoginSoapClient.EndpointConfiguration.UserLoginSoap); var EncryptPassword = ""; EncryptPassword = AesCryptoService.Encrypt(newPassword, AesKey, Iv); var data = await client2.ResetPasswordAsync(new ResetPasswordRequest { AuthKey = await DefaultUserLoginAndGetMCKey(false), mobile = mobilePhone, newpwd = EncryptPassword, VerifyCode = verifyCode, VerifyID = verifyID }); if (data.ResetPasswordResult != 0) { data = await client2.ResetPasswordAsync(new ResetPasswordRequest { AuthKey = await DefaultUserLoginAndGetMCKey(), mobile = mobilePhone, newpwd = EncryptPassword, VerifyCode = verifyCode, VerifyID = verifyID }); } var resultData = data.ResetPasswordResult == 0; if (resultData) { var openid = await _cacheManager.GetCache(AppConsts.Cache_AuthKey2OpenID) .GetOrDefaultAsync <string, string>(mgccAuthKey); await SetMemberInfo(openid, data.username, newPassword, mgccAuthKey, AesKey, Iv, mobilePhone); } return(data); }
public void Encrypt_ShouldReturn_EncryptedText() { var textToEncrypt = "text for encryption"; var provider = new Mock <ICryptoKeyProvider>(); provider.Setup(x => x.GenerateCryptoKey(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Returns(ConvertStreamToSecureString(new MemoryStream(Guid.NewGuid().ToByteArray()))); var factory = new Mock <ICryptoKeyProviderFactory>(); factory.Setup(x => x.GetKeyProvider()).Returns(provider.Object); var encrypter = new AesCryptoService(factory.Object); var encryptedText = encrypter.Encrypt(_application, _tenant, _key, textToEncrypt); Assert.NotNull(encryptedText); Assert.NotEmpty(encryptedText); }
private string GetMemberAuthKey(string mgccAuthKey) { var AesResult = GetAesKey(); var openid = _cacheManager.GetCache(AppConsts.Cache_AuthKey2OpenID).GetOrDefaultAsync(mgccAuthKey).Result; if (openid != null)//MgccKey没过期 { var _memberInfo = _mpUserMemberAppService.GetByOpenID(openid.ToString()).Result; if (_memberInfo != null)//会员->用会员帐户名登陆 { Logger.Info("登录的会员信息:" + JsonConvert.SerializeObject(_memberInfo)); Logger.Info("会员登录:" + mgccAuthKey); Logger.Info("用户名:" + _memberInfo.MemeberUserName + ",密码:" + _memberInfo.MemberPassword); return((string)_cacheManager.GetCache(AppConsts.Cache_MCAuthKey).Get <string, string>(mgccAuthKey, c => { UserLoginSoapClient client = new UserLoginSoapClient(UserLoginSoapClient.EndpointConfiguration.UserLoginSoap); var EncryptPassword = ""; try { EncryptPassword = AesCryptoService.Encrypt(_memberInfo.MemberPassword, AesResult.CryptAESKey, AesResult.CryptAESIV); } catch { AesResult = GetAesKey(true); EncryptPassword = AesCryptoService.Encrypt(_memberInfo.MemberPassword, AesResult.CryptAESKey, AesResult.CryptAESIV); } //获取最新的AuthKey var result = client.LoginExAsync(new LoginExRequest { UserName = _memberInfo.MemeberUserName, EncryptPassword = EncryptPassword, DeviceCode = deviceCode }).Result; return result.AuthKey; })); } } return(null); }
public async Task <string> GetClientInfoByOfficialCityJsonAsync() { string AuthKey = Request.Form["AuthKey"].ToString(); string AesKey = Request.Form["AesKey"].ToString(); string Iv = Request.Form["Iv"].ToString(); int OfficialCity = 1; int.TryParse(Request.Form["OfficialCity"].ToString(), out OfficialCity); yilibabyClientInfo.ClientInfoServiceSoapClient client = new yilibabyClientInfo.ClientInfoServiceSoapClient(yilibabyClientInfo.ClientInfoServiceSoapClient.EndpointConfiguration.ClientInfoServiceSoap); var result = await client.GetClientInfoByOfficialCityJsonAsync(AuthKey, OfficialCity); if (!string.IsNullOrWhiteSpace(result) && result != "null") { return(AesCryptoService.DecryptText(result, AesKey, Iv)); } else { return(result); } }
static void TestNameEncryption() { string fileName = "Обучение CRM.docx"; Console.WriteLine("Source name: " + fileName); IHashService md5 = new Md5HashService(); IDecodingService unicodeDecoder = new Utf8Coder(); ICryptoService aes = new AesCryptoService(); EncryptionService svc = new EncryptionService(md5, unicodeDecoder, aes); svc.SetCipherData("qazqaz", "qwer"); string ecryptedName = svc.Process(fileName, CipherDirection.Encryption, new Base64Coder(), new Utf8Coder()); Console.WriteLine("Encrypted name: " + ecryptedName); string decryptedName = svc.Process(ecryptedName, CipherDirection.Decryption, new Utf8Coder(), new Base64Coder()); Console.WriteLine("Decrypted name: " + decryptedName); }
/// <summary> /// 美驰默认账号登录并获取美驰authkey /// </summary> /// <returns></returns> private async Task <string> DefaultUserLoginAndGetMCKey(bool getnew = true) { if (!getnew) { var mckey = await _cacheManager.GetCache(AppConsts.Cache_MCAuthKey).GetOrDefaultAsync("DefaultMCAuthKey"); if (mckey != null) { return((string)mckey); } } UserLoginSoapClient client = new UserLoginSoapClient(UserLoginSoapClient.EndpointConfiguration.UserLoginSoap); var EncryptPassword = ""; var AesResult = await GetDefaultAesKey(); try { EncryptPassword = AesCryptoService.Encrypt(defaultUserPwd, AesResult.CryptAESKey, AesResult.CryptAESIV); } catch { AesResult = await GetDefaultAesKey(true); EncryptPassword = AesCryptoService.Encrypt(defaultUserPwd, AesResult.CryptAESKey, AesResult.CryptAESIV); } var result = await client.LoginExAsync(new LoginExRequest { UserName = defaultUserName, EncryptPassword = EncryptPassword, DeviceCode = deviceCode }); if (result.LoginExResult == 0 && !string.IsNullOrWhiteSpace(result.AuthKey)) { await _cacheManager.GetCache(AppConsts.Cache_MCAuthKey).SetAsync("DefaultMCAuthKey", result.AuthKey); return(result.AuthKey); } else { return(""); } }
/// <summary> /// 获取会员信息 /// </summary> /// <param name="authKey"></param> /// <returns></returns> public async Task <MemberTemp> GetServiceMember(string authKey) { string jsonStr = string.Empty; yilibabyMember.MemberServiceSoapClient client = new yilibabyMember.MemberServiceSoapClient(yilibabyMember.MemberServiceSoapClient.EndpointConfiguration.MemberServiceSoap); { jsonStr = await client.GetMyMemberInfoJsonAsync(authKey); } MemberTemp member = null; if (!string.IsNullOrWhiteSpace(jsonStr) && jsonStr != "null") { var aesResult = await GetAesKey(); string plainJson = AesCryptoService.Decrypt(jsonStr, aesResult.CryptAESKey, aesResult.CryptAESIV); member = JsonConvert.DeserializeObject <MemberTemp>(plainJson); } return(member); }
public async Task <string> GetSubCitysBySuperJson() { string AuthKey = Request.Form["AuthKey"].ToString(); string AesKey = Request.Form["AesKey"].ToString(); string Iv = Request.Form["Iv"].ToString(); int CityID = 1; int.TryParse(Request.Form["CityID"].ToString(), out CityID); OfficialCityServiceSoapClient client = new OfficialCityServiceSoapClient(OfficialCityServiceSoapClient.EndpointConfiguration.OfficialCityServiceSoap); var result = await client.GetSubCitysBySuperJsonAsync(AuthKey, CityID); if (!string.IsNullOrWhiteSpace(result) && result != "null") { return(AesCryptoService.DecryptText(result, AesKey, Iv)); } else { return(result); } }
/// <summary> /// 更新会员信息 /// </summary> /// <param name="authKey"></param> /// <param name="member"></param> /// <returns></returns> public async Task <bool> UpdateMemberInfoJson(string authKey, MemberTemp member) { int result = -1; DateTime startTime = DateTime.Now; //string authKey = ""; try { yilibabyMember.MemberServiceSoapClient client = new yilibabyMember.MemberServiceSoapClient(yilibabyMember.MemberServiceSoapClient.EndpointConfiguration.MemberServiceSoap); var aesResult = await GetAesKey(); string jsonStr = JsonConvert.SerializeObject(member); jsonStr = AesCryptoService.Encrypt(jsonStr, aesResult.CryptAESKey, aesResult.CryptAESIV); result = await client.UpdateMemberInfoJsonAsync(authKey, jsonStr); if (result >= 0) { return(true); } else { return(false); } } catch (Exception ex) { _logger.Error($"更新会员资料出错,错误信息:{ex.Message},错误堆栈:{ex.StackTrace}"); return(false); } finally { _logger.Info($"MemberService.UpdateMemberInfoJson信息:开始时间{startTime},终止时间:{DateTime.Now},AuthKey:{authKey},回复值:{result}"); //LogInterfaceMan.AddLog("MemberService.UpdateMemberInfoJson", 0, startTime, DateTime.Now, "MemberName:" + ";Password:"******";AuthKey:" + authKey, "", result.ToString(), "", "", result == 0 ? true : false); } }
public async Task <string> GetRetailerListByOfficialCityJson() { Logger.Info("门店调用开始"); string AuthKey = Request.Form["AuthKey"].ToString(); string AesKey = Request.Form["AesKey"].ToString(); string Iv = Request.Form["Iv"].ToString(); int OfficialCity = 1; int.TryParse(Request.Form["OfficialCity"].ToString(), out OfficialCity); Logger.Info("城市id:" + OfficialCity); MemberServiceSoapClient client = new MemberServiceSoapClient(MemberServiceSoapClient.EndpointConfiguration.MemberServiceSoap); var result = await client.GetRetailerListByOfficialCityJsonAsync(AuthKey, OfficialCity); if (!string.IsNullOrWhiteSpace(result) && result != "null") { return(AesCryptoService.DecryptText(result, AesKey, Iv)); } else { return(result); } }
public async Task <string> GetHotGiftsJson() { int TopCount = -1; int.TryParse(Request.Form["TopCount"].ToString(), out TopCount); int MaxPoints = -1; int.TryParse(Request.Form["MaxPoints"].ToString(), out MaxPoints); DateTime BeginDate = DateTime.MinValue; DateTime.TryParse(Request.Form["BeginDate"].ToString(), out BeginDate); MemberServiceSoapClient client = new MemberServiceSoapClient(MemberServiceSoapClient.EndpointConfiguration.MemberServiceSoap); string result = ""; try { result = await client.GetHotGiftsJsonAsync(await DefaultUserLoginAndGetMCKey(), TopCount, MaxPoints, BeginDate); } catch { result = await client.GetHotGiftsJsonAsync(await DefaultUserLoginAndGetMCKey(true), TopCount, MaxPoints, BeginDate); } var AesResult = await GetDefaultAesKey(); try { return(AesCryptoService.Decrypt(result, AesResult.CryptAESKey, AesResult.CryptAESIV)); } catch { AesResult = await GetDefaultAesKey(true); return(AesCryptoService.Decrypt(result, AesResult.CryptAESKey, AesResult.CryptAESIV)); } }
public async Task <int> UpdateMemberInfoJson() { string AuthKey = Request.Form["AuthKey"].ToString(); string AesKey = Request.Form["AesKey"].ToString(); string Iv = Request.Form["Iv"].ToString(); string Member = Request.Form["Member"].ToString(); MemberServiceSoapClient client = new MemberServiceSoapClient(MemberServiceSoapClient.EndpointConfiguration.MemberServiceSoap); Logger.Info("会员更新:" + AuthKey); var mckey = AuthKey; var aesMember = AesCryptoService.Encrypt(Member, AesKey, Iv); Logger.Info("传入更新的会员信息:" + Member); var result = await client.UpdateMemberInfoJsonAsync(mckey, aesMember); Logger.Info($"更新的结果:{result}"); #region 获取更新后美驰的会员信息 var jsonStr = await client.GetMyMemberInfoJsonAsync(mckey); if (!string.IsNullOrWhiteSpace(jsonStr) && jsonStr != "null") { string plainJson = AesCryptoService.DecryptText(jsonStr, AesKey, Iv); Logger.Info($"获取美驰的更新后的会员信息:{plainJson}"); } #endregion var openid = await _cacheManager.GetCache(AppConsts.Cache_AuthKey2OpenID).GetOrDefaultAsync(AuthKey); var member = await _mpUserMemberAppService.GetByOpenID(openid.ToString()); var newmember = JsonConvert.DeserializeObject <MeiChiMember>(Member); member.MemberType = newmember.MemberType; member.BabyName = newmember.BabyName; member.BabyBirthday = newmember.Birthday; member.MemberName = newmember.RealName; member.MemberIdentity = newmember.HomeRole.ToString(); member.RegistProductName = newmember.CollectProductName; member.RegistProduct = newmember.CollectProduct; member.UsedBrand = newmember.PreBrand; member.FeedingMode = newmember.FeedMode; member.MonthConsumption = newmember.EatQuantityOneMonth; member.DayConsumption = newmember.EatTimesOneDay; member.OfficialCity = newmember.OfficialCity; member.Address = newmember.Address; member.LikeChannel = newmember.ServicePreferences.ToString(); member.ServiceShop = newmember.serviceCMClientName; if (!string.IsNullOrWhiteSpace(newmember.OfficialCityName)) { var areaArray = newmember.OfficialCityName.Split(' '); member.Province = areaArray.Length > 0 ? areaArray[0] : string.Empty; member.City = areaArray.Length > 1 ? areaArray[1] : string.Empty; member.Area = areaArray.Length > 2 ? areaArray[2] : string.Empty; } //member.ServiceShopCode = newmember.serviceCMClientCode; member.CRMID = newmember.CRMID; var fans = await _mpFanAppService.GetFirstOrDefaultByOpenID(openid.ToString()); if (fans != null) { fans.MemberID = newmember.CRMID; await _mpFanAppService.Update(fans); } else { await _mpFanAppService.Create(new MpFans.Dto.MpFanDto { OpenID = openid.ToString(), IsFans = true, MpID = 1, MemberID = newmember.CRMID, LastModificationTime = DateTime.Now }); } await _mpUserMemberAppService.Update(member); return(result); }
public AesCryptoServiceTests() { this._cryptoKeyStub = "I'mTestKey"; this._cryptoServiceUnderTests = new AesCryptoService(this._cryptoKeyStub); }