public static void Initialize(ApplicationDbContext context) { context.Database.EnsureCreated(); if (context.IdentityUser.Any()) { return; } var salt = Guid.NewGuid().ToString(); IdentityUser admin = new IdentityUser { Name = "管理员", Account = "admin", AccountType = 0, Age = 0, Birthday = new DateTime(), Salt = salt, Password = Md5Utility.Sign("123456", salt), Gender = true, IsEnabled = true, Email = "*****@*****.**", HomePage = "Administrator", IdNumber = "0", DepartmentId = 0, Department = "管理员部门" }; context.IdentityUser.Add(admin); context.SaveChanges(); }
public void GenCode(string folder) { if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } //typeMd5 code string line = "\t\ttypeMd5[typeof({0})] = \"{1}\";\n"; StringBuilder sb = new StringBuilder(typeMd5CodeBegin); foreach (var type in registeredTypes) { var gen = GetGenerator(type); string code = gen.GenerateSerializerCode(type); if (code != null) { string typename = gen.SerializerFileName(type); sb.Append(string.Format(line, typename, Md5Utility.MD5String(code))); File.WriteAllText(Path.Combine(folder, typename + ".cs"), code); } } sb.Append(typeMd5CodeEnd); File.WriteAllText(Path.Combine(folder, "TypesMd5.cs"), sb.ToString()); }
public string GetInMask() { string mask = ""; mask = GetAllValue(); mask = Md5Config.InPreFix + mask + Md5Config.InPostFix; mask = Md5Utility.Encrypt32(mask); return(mask); }
public static void ReadConfigAsBin(Type type, string name) { var gen = BinarySerializerCodeGenerator.GetGenerator(type); string serializerFileName = gen.SerializerFileName(type); if (!serializerFileName.StartsWith("Static_")) { UnityEngine.Debug.LogError("Config type must be static"); return; } Type serializer = Type.GetType(serializerFileName + ",Assembly-CSharp"); if (serializer != null) { MethodInfo read = serializer.GetMethod("Read", BindingFlags.Public | BindingFlags.Static); if (read != null) { string path = Path.Combine(FileUtils.binary_config_folder, name + ".conf"); BinaryReader br = new BinaryReader(File.Open(path, FileMode.Open)); byte[] md5 = br.ReadBytes(16); var same = Md5Utility.Md5Compare(md5, Md5Utility.MD5(configGeneratorMd5(type))); if (!same) { br.Close(); UnityEngine.Debug.LogError("Read binary config error: md5 not the same"); return; } read.Invoke(null, new object[] { br }); br.Close(); } else { UnityEngine.Debug.LogError("Generate serializer code first"); } } else { UnityEngine.Debug.LogError("Generate serializer code first"); } }
public static void WriteConfigAsBin(Type type, string name, string folder) { var gen = BinarySerializerCodeGenerator.GetGenerator(type); string serializerFileName = gen.SerializerFileName(type); if (!serializerFileName.StartsWith("Static_")) { UnityEngine.Debug.LogError("Config type must be static"); return; } byte[] md5 = Md5Utility.MD5(ConfigReader.configGeneratorMd5(type)); Type serializer = Type.GetType(serializerFileName + ",Assembly-CSharp"); if (serializer != null) { MethodInfo write = serializer.GetMethod("Write", BindingFlags.Public | BindingFlags.Static); if (write != null) { string path = Path.Combine(folder, name + ".conf"); BinaryWriter bw = new BinaryWriter(File.Open(path, FileMode.Create)); bw.Write(md5); write.Invoke(null, new object[] { bw }); bw.Close(); } else { UnityEngine.Debug.LogError("Generate serializer code first"); } } else { UnityEngine.Debug.LogError("Generate serializer code first"); } }
public async Task <IActionResult> Login(LoginViewModel viewModel, string returnUrl) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var user = await _service.GetUserAsync(viewModel.Account, viewModel.Password, _context); if (user != null) { if (user.Password.Trim() != Md5Utility.Sign(viewModel.Password, user.Salt)) { ViewBag.ErrorInfo = "用户名或密码错误"; return(View()); } _logger.LogInformation("用户:{0}于{1}登录系统", viewModel.Account, DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")); string role = GetRole(user); //根据用户角色创建claim声明 List <Claim> claim = new List <Claim> { new Claim(ClaimTypes.Role, role) }; var userIdentity = new ClaimsIdentity(role); userIdentity.AddClaims(claim); var userPrincipal = new ClaimsPrincipal(userIdentity); await HttpContext.SignInAsync(userPrincipal, new AuthenticationProperties { ExpiresUtc = DateTime.UtcNow.AddMinutes(20), IsPersistent = false, AllowRefresh = false }); //设置当前用户信息 await _service.SetCurrentUser(user.IdentityUserOID, _httpContextAccessor, _context); if (!string.IsNullOrEmpty(returnUrl)) { return(RedirectToLocal(returnUrl)); } return(RedirectToRoute(new { area = user.HomePage, controller = "Home", action = "Index" })); } else { ViewBag.ErrorInfo = "当前用户不存在"; return(View()); } } //返回模型验证错误信息 ViewBag.ErrorInfo = this.ModelState.Keys.SelectMany(key => this.ModelState[key].Errors).FirstOrDefault()?.ErrorMessage; return(View(viewModel)); }
public List <T> ConsumeMessages <T>(string queueUrl, bool deleteMessages = false, int?maxNumberOfMessages = null) { ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest { QueueUrl = queueUrl }; if (maxNumberOfMessages.HasValue) { receiveMessageRequest.MaxNumberOfMessages = maxNumberOfMessages.Value; } ReceiveMessageResponse receiveMessageResponse = m_amazonSqsClient.ReceiveMessage(receiveMessageRequest); var messagesAndMd5 = receiveMessageResponse.Messages .Select(s => new { s.MessageId, s.Body, IsValidMD5 = Md5Utility.CompareMd5Sqs(s.Body, s.MD5OfBody), s.ReceiptHandle }) .ToList(); if (messagesAndMd5.Any(a => !a.IsValidMD5)) { LoggingRepository.Log(LoggingCategory.RepricingScript, "MD5 on IMwsSubscriptionServiceApi was not valid."); } // Filter out messages with corrupted Body (Md5 didn't match). var messagesAndMd5Filtered = messagesAndMd5.Where(w => w.IsValidMD5) .ToDictionary(k => k.MessageId, v => v); if (deleteMessages && messagesAndMd5Filtered.Any()) { List <DeleteMessageBatchRequestEntry> deleteMessageBatchRequestEntries = messagesAndMd5Filtered .Select(s => s.Value) .Select(s => new DeleteMessageBatchRequestEntry { Id = s.MessageId, ReceiptHandle = s.ReceiptHandle }) .ToList(); DeleteMessageBatchResponse deleteMessageBatchResponse = m_amazonSqsClient.DeleteMessageBatch(new DeleteMessageBatchRequest { Entries = deleteMessageBatchRequestEntries, QueueUrl = queueUrl }); // Don't return messages that we weren't able to delete. if (deleteMessageBatchResponse.Failed.Any()) { foreach (BatchResultErrorEntry batchResultErrorEntry in deleteMessageBatchResponse.Failed) { if (messagesAndMd5Filtered.ContainsKey(batchResultErrorEntry.Id)) { messagesAndMd5Filtered.Remove(batchResultErrorEntry.Id); } } } } return(messagesAndMd5Filtered.Select(s => s.Value.Body.FromXml <T>()).ToList()); }