//create account's security Database public void CreateSecurity(AccountSecurity accountSecurity) { if (accountSecurity != null) { _context.AccountSecurities.Add(accountSecurity); _context.SaveChanges(); } }
public void UpdateSecurity(int accountId, bool tfa, bool loginAlerts) { AccountSecurity accountSecurity = _context.AccountSecurities.FirstOrDefault(p => p.AccountId == accountId); if (accountSecurity != null) { accountSecurity.TwoFactoryAuth = tfa; accountSecurity.LoginAlerts = loginAlerts; _context.SaveChanges(); } }
private void LoadSecurity() { this.cboSecurity.Items.Clear(); foreach (string str in AccountSecurity.MaxSecurityLevel(Global.GlobalAccount.Security)) { ListItem listItem = new ListItem(); listItem = new ListItem() { Text = str }; this.cboSecurity.Items.Add(listItem); } }
public void TestIsPasswordComplex() { const string testPassword1 = "donthackmeplox"; const string testPassword2 = "tHisIs4P4ssw0rd!"; bool result1 = AccountSecurity.IsPasswordComplex(testPassword1); Assert.AreEqual(false, result1, "Unable to check password complexity for insecure password."); bool result2 = AccountSecurity.IsPasswordComplex(testPassword2); Assert.AreEqual(true, result2, "Unable to check password complexity for secure password."); }
private void SetData() { Image image = Utilities.ByteArrayToImage(this.sRecord.dRecord.Thumbnail); this.Thumbnail.SizeMode = PictureBoxSizeMode.CenterImage; if (image.Height >= 137 || image.Width >= 80) { this.Thumbnail.SizeMode = PictureBoxSizeMode.StretchImage; } this.Thumbnail.Image = image; this.RatingCtrl.Value = (float)this.sRecord.dRecord.Rating; this.txtSetID.Text = this.sRecord.dRecord.SetName; this.txtShortDesc.Text = this.sRecord.dRecord.ShortDesc; this.lbl_DB_FileName.Text = this.sRecord.dRecord.StoredFileName; this.lblTimestamp.Text = string.Format("{0}", this.sRecord.dRecord.FileTimestamp); this.lblUploaded.Text = string.Format("{0}", this.sRecord.dRecord.FileAddedTimestamp); this.lblSize.Text = string.Format("{0} Bytes", this.sRecord.dRecord.FileSize); this.lblHashCode.Text = string.Format("{0}", this.sRecord.dRecord.FileHashCode); this.lblGPS.Text = (string.IsNullOrEmpty(this.sRecord.dRecord.GPS) ? "0.0,0.0" : this.sRecord.dRecord.GPS); this.label_0.Text = (this.sRecord.dRecord.TrackingID == Guid.Empty ? "n/a" : this.sRecord.dRecord.TrackingID.ToString()); this.lblFileExt.Text = this.sRecord.dRecord.FileExtension; this.lblOriginalName.Text = this.sRecord.dRecord.OriginalFileName; this.chk_PSIsIndefinite.Checked = this.sRecord.dRecord.IsIndefinite; this.lblMachineAccount.Text = this.sRecord.dRecord.MachineAccount; this.lblDomain.Text = this.sRecord.dRecord.UserDomain; this.lblMachineName.Text = this.sRecord.dRecord.MachineName; this.label_1.Text = this.sRecord.dRecord.LoginID; this.lblSourcePath.Text = this.sRecord.dRecord.SourcePath; this.txtRMS.Text = this.sRecord.dRecord.RMSNumber; this.txtCAD.Text = this.sRecord.dRecord.CADNumber; this.chk_PSEvidence.Checked = this.sRecord.dRecord.IsEvidence; using (RPM_Account rPMAccount = new RPM_Account()) { Account account = rPMAccount.GetAccount(this.sRecord.dRecord.AccountId); this.lblAccountName.Text = string.Format("{0} • {1}", account.ToString(), account.BadgeNumber); } FormCtrl.SetComboItem(this.cboClass, this.sRecord.dRecord.Classification); FormCtrl.SetComboItem(this.cboSecurity, AccountSecurity.GetSecurityDesc(this.sRecord.dRecord.Security)); bool?isPurged = this.sRecord.dRecord.IsPurged; if ((isPurged.GetValueOrDefault() ? false : isPurged.HasValue) && this.sRecord.dRecord.PurgeTimestamp.HasValue) { this.lblRestoreDate.Text = this.sRecord.dRecord.PurgeTimestamp.ToString(); this.RestorePanel.Visible = true; } }
private void SetSlideData() { try { this.lblNumber.Text = Convert.ToString(this.sRecord.SlideNumber); this.lblTimestamp.Text = string.Format("{0}", this.sRecord.dRecord.FileTimestamp); this.Rating.Value = (float)this.sRecord.dRecord.Rating; Image image = Utilities.ByteArrayToImage(this.sRecord.dRecord.Thumbnail); this.Thumbnail.Image = image; this.label_0.Text = this.sRecord.dRecord.SetName; this.lblClassification.Text = this.sRecord.dRecord.Classification; this.lblDesc.Text = this.sRecord.dRecord.ShortDesc; this.sRecord.IsSet = !string.IsNullOrEmpty(this.sRecord.dRecord.SetName); this.lblSecurity.BackColor = Color.Transparent; switch (this.sRecord.dRecord.Security) { case SECURITY.TOPSECRET: { this.lblSecurity.ForeColor = Color.Yellow; this.lblSecurity.BackColor = Color.Red; break; } case SECURITY.SECRET: { this.lblSecurity.ForeColor = Color.White; this.lblSecurity.BackColor = Color.Orange; break; } case SECURITY.OFFICIAL: { this.lblSecurity.ForeColor = Color.Black; this.lblSecurity.BackColor = Color.Yellow; break; } } this.lblSecurity.Text = AccountSecurity.GetSecurityDesc(this.sRecord.dRecord.Security); this.RetentionDisplay(); } catch { } }
private void btn_Save_Click(object sender, EventArgs e) { this.sRecord.dRecord.Rating = (int)this.RatingCtrl.Value; this.sRecord.dRecord.Classification = this.cboClass.Text; this.sRecord.dRecord.Security = AccountSecurity.GetByString(this.cboSecurity.Text); this.sRecord.IsDescUpdate = false; if (!this.sRecord.dRecord.ShortDesc.Equals(this.txtShortDesc.Text)) { this.sRecord.IsDescUpdate = true; } this.sRecord.dRecord.ShortDesc = this.txtShortDesc.Text; this.sRecord.dRecord.SetName = this.txtSetID.Text; this.sRecord.dRecord.CADNumber = (this.txtCAD.Text); this.sRecord.dRecord.RMSNumber = (this.txtRMS.Text); this.sRecord.dRecord.IsIndefinite = this.chk_PSIsIndefinite.Checked; this.sRecord.dRecord.IsEvidence = this.chk_PSEvidence.Checked; base.DialogResult = DialogResult.OK; base.Close(); }
public async Task <IActionResult> SignUp([FromBody] AccountSecurity model) { if (ModelState.IsValid) { if (VerifyUniqueEmail(model.Email)) { return(BadRequest(new { Message = "Email already exists" })); } model.UserId = Guid.NewGuid(); model.Password = PasswordUseFull.GetHash(model.Password); for (int j = 0; j < model.Phones.Count; j++) { model.Phones[j].UserId = model.UserId; } var createduser = _context.AccountSecurity.Add(model); if (createduser == null) { return(BadRequest(new { Message = "Username or password invalid" })); } _context.SaveChanges(); account = new Account() { CreatedOn = DateTime.Now, IdUser = model.UserId, LastLoginOn = DateTime.Now, LastUpdateOn = DateTime.Now }; return(BuildSignUpResponse(model)); } return(BadRequest(ModelState)); }
private JwtSecurityToken BuildToken(AccountSecurity userInfo) { var claims = new[] { new Claim(JwtRegisteredClaimNames.UniqueName, userInfo.Email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetSection("SecretKey").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var expiration = DateTime.Now.AddMinutes(Convert.ToDouble(_configuration.GetSection("TokenExpiration").Value)); JwtSecurityToken token = new JwtSecurityToken( issuer: "yourdomain.com", audience: "yourdomain.com", claims: claims, expires: expiration, signingCredentials: creds); return(token); }
private IActionResult BuildSignUpResponse(AccountSecurity userInfo) { try { var token = BuildToken(userInfo); account.TokenId = new Guid(token.Id); _context.Account.Add(account); _context.SaveChanges(); TokenInfo(token); return(Ok(new { userId = account.IdUser, creationOn = account.CreatedOn, lastUpdateOn = account.LastUpdateOn, lastLoginOn = account.LastLoginOn, token = new JwtSecurityTokenHandler().WriteToken(token) })); } catch (Exception e) { return(BadRequest(e.Message)); } }
public IActionResult SignUp(RegisterViewModel model) { bool checkUser = _authRepository.CheckEmail(model.Email); bool number = _authRepository.CheckPhone(model.Phone); if (checkUser) { ModelState.AddModelError("Email", "Bu E-mail artiq movcuddur"); } if (number) { ModelState.AddModelError("Phone", "Bu Nömrə artıq mövcuddur"); } if (ModelState.IsValid) { var user = _mapper.Map<RegisterViewModel, Account>(model); user.Fullname = model.Name + " " + model.Surname; user.Token = Guid.NewGuid().ToString(); user.Status = true; user.IsEmailVerified = false; //email verification code user.EmailActivationCode = Guid.NewGuid().ToString(); _authRepository.Register(user); AccountSocialLink accountSocialLink = new AccountSocialLink { AccountId = user.Id, Status = true, AddedBy = "System", AddedDate = DateTime.Now }; _authRepository.AddedSocial(accountSocialLink); //creating account's privacy Database AccountPrivacy accountPrivacy = new AccountPrivacy { AccountId = user.Id, Status = true, AddedDate = DateTime.Now, AddedBy = "System", Phone = true, Email = true, LastLogin = true, LastSeen = true, Address = true, Birthday = true, ProfileImg = true, SocialLink = true, StatusText = true, Website = true }; _authRepository.CreatePrivacy(accountPrivacy); AccountSecurity accountSecurity = new AccountSecurity { AccountId=user.Id, TwoFactoryAuth = false, LoginAlerts = false }; _authRepository.CreateSecurity(accountSecurity); //send verification link email string userFullname = user.Name + " " + user.Surname; string link = HttpContext.Request.Scheme + "://" + Request.Host + "/account/verifyemail/" + user.EmailActivationCode; _emailService.VerificationEmail(user.Email, link, user.EmailActivationCode, userFullname); Response.Cookies.Append("token", user.Token, new Microsoft.AspNetCore.Http.CookieOptions { HttpOnly = true, Expires = DateTime.Now.AddYears(1) }); return RedirectToAction("chat1", "pages"); } return View(model); }
private void LogScan() { string str = Path.Combine(this.FilePath, this.DocName); FileInfo fileInfo = new FileInfo(str); using (RPM_DataFile rPMDataFile = new RPM_DataFile()) { DataFile dataFile = new DataFile() { AccountId = this.AccountID, Classification = "Unclassified", FileAddedTimestamp = new DateTime?(DateTime.Now), FileExtension = ".PDF", FileExtension2 = "" }; HashAlgorithm sHA1 = HashAlgorithms.SHA1; switch (Global.DefaultHashAlgorithm) { case HASH_ALGORITHM.MD5: { sHA1 = HashAlgorithms.MD5; break; } case HASH_ALGORITHM.SHA1: { sHA1 = HashAlgorithms.SHA1; break; } case HASH_ALGORITHM.SHA256: { sHA1 = HashAlgorithms.SHA256; break; } case HASH_ALGORITHM.SHA384: { sHA1 = HashAlgorithms.SHA384; break; } case HASH_ALGORITHM.SHA512: { sHA1 = HashAlgorithms.SHA512; break; } case HASH_ALGORITHM.RIPEMD160: { sHA1 = HashAlgorithms.RIPEMD160; break; } } dataFile.FileHashCode = Hash.GetHashFromFile(str, sHA1); dataFile.FileSize = fileInfo.Length; dataFile.FileTimestamp = new DateTime?(fileInfo.LastWriteTime); dataFile.GPS = ""; dataFile.IsEncrypted = new bool?(false); dataFile.IsPurged = new bool?(false); dataFile.OriginalFileName = this.DocGuid.ToString(); dataFile.PurgeFileName = ""; dataFile.Rating = 0; dataFile.Security = AccountSecurity.GetByString(this.cboSecurity.Text); dataFile.SetName = ""; dataFile.ShortDesc = this.txtTitle.Text; dataFile.StoredFileName = this.DocGuid.ToString(); dataFile.Thumbnail = Utilities.ImageToByte(this.ThumbnailImage); dataFile.TrackingID = Guid.Empty; dataFile.UNCName = this.UNC; dataFile.UNCPath = this.DataPath; string machineName = Environment.MachineName; string userName = Environment.UserName; string userDomainName = Environment.UserDomainName; dataFile.MachineName = machineName; dataFile.MachineAccount = userName; dataFile.UserDomain = userDomainName; dataFile.SourcePath = this.ScannerName; dataFile.LoginID = Global.LoginIDName; rPMDataFile.SaveUpdate(dataFile); rPMDataFile.Save(); } }
public IActionResult SignIn([FromBody] AccountSecurity model) { try { if (ModelState.IsValid) { var resultAccountSecurity = _context.AccountSecurity.FirstOrDefault(x => x.Email == model.Email); if (resultAccountSecurity?.Email == null) { return(BadRequest(new { Message = "Invalid user and / or password" })); } bool isValid = PasswordUseFull.ValidatePass(model.Password, resultAccountSecurity.Password); if (!isValid) { return(Unauthorized()); } var resultAccount = _context.Account .Where(c => c.IdUser == resultAccountSecurity.UserId) .OrderByDescending(t => t.LastLoginOn) .FirstOrDefault(); var token = BuildToken(model); Token tokenInfo = new Token() { CreatedDate = DateTime.Now, GuidToken = new Guid(token.Id), ValueToken = new JwtSecurityTokenHandler().WriteToken(token) }; if (resultAccount != null) { Account account = new Account() { IdUser = resultAccountSecurity.UserId, CreatedOn = resultAccount.CreatedOn, LastLoginOn = DateTime.Now, LastUpdateOn = DateTime.Now, TokenId = new Guid(token.Id) }; _context.Account.Add(account); _context.Tokens.Add(tokenInfo); _context.SaveChanges(); } if (resultAccount != null) { return(Ok(new { idUser = resultAccountSecurity.UserId, createdOn = resultAccount.CreatedOn, lastUpdateOn = resultAccount.LastUpdateOn, lastloginOn = resultAccount.LastLoginOn, token = new JwtSecurityTokenHandler().WriteToken(token) })); } return(BadRequest(new { Message = "Invalid user and / or password" })); } return(BadRequest()); } catch (Exception e) { return(BadRequest(e.Message)); } }
public IActionResult SearchUser() { try { string token = string.Empty; if (Request.Headers.ContainsKey("Authorization")) { if (Request.Headers.TryGetValue("Authorization", out var tokenHeader)) { token = tokenHeader.ToString().Replace("Bearer", "").Trim(); var resultTokenExists = _context.Tokens.FirstOrDefault(x => x.ValueToken == token); if (resultTokenExists == null) { return(Unauthorized()); } var resultAccount = _context.Account .Where(c => c.TokenId == resultTokenExists.GuidToken) .OrderByDescending(t => t.LastLoginOn) .FirstOrDefault(); //not the same token if (resultAccount == null) { return(Unauthorized()); } if ((DateTime.Now - resultTokenExists.CreatedDate).Minutes > Convert.ToInt32(_configuration.GetSection("TokenExpiration").Value)) { return(BadRequest(new { Message = "Invalid Session" })); } AccountSecurity resultAccountSecurity = GetAccountSecurity(resultAccount.IdUser); StringBuilder listPhones = new StringBuilder(); foreach (var item in resultAccountSecurity.Phones) { listPhones.AppendFormat("number:{0}, ", item.Value); } return(Ok(new { idUser = resultAccount.IdUser, name = resultAccountSecurity.Name, email = resultAccountSecurity.Email, phones = listPhones.ToString(), createdOn = resultAccount.CreatedOn, lastUpdateOn = resultAccount.LastUpdateOn, lastLoginOn = resultAccount.LastLoginOn, token = resultTokenExists.ValueToken })); } } } catch (Exception e) { return(BadRequest(e.Message)); } return(BadRequest()); }