public JsonResult ChangePassword(string old_p, string new_p) { try { if (!string.IsNullOrWhiteSpace(old_p) && !string.IsNullOrWhiteSpace(new_p)) { RFLoginCache.Login(LoginUsername, old_p); var oldPasswordHash = RFLoginCache.GetPasswordHash(LoginUsername); RFLoginCache.Login(LoginUsername, new_p); var newPasswordHash = RFLoginCache.GetPasswordHash(LoginUsername); var vaults = Context.GetKeysByType <RFKeyVaultKey>(); if (vaults.Any()) { foreach (var vaultKey in vaults.Values) { using (var secure = new RFSecureActivity(Context, LoginUsername, new RFSimpleKeyDomain(vaultKey.Root), vaultKey.Enum)) { var vault = secure.OpenKeyVault(oldPasswordHash); vault.ResetUser(LoginUsername, newPasswordHash); secure.SaveKeyVault(); } } } } Context.UserLog.LogEntry(new RFUserLogEntry { Action = "ChangePassword", Area = "Encryption", Description = "Changed password.", IsUserAction = true, IsWarning = false, Username = Username, Timestamp = DateTimeOffset.Now }); return(Json(true)); } catch (Exception ex) { RFLoginCache.Logout(LoginUsername); return(Json(JsonError.Throw("ChangePassword", ex))); } }
public JsonResult ResetMaster(string p) { try { var passwordHash = RFLoginCache.Login(LoginUsername, p); var vaults = Context.GetKeysByType <RFKeyVaultKey>(); if (vaults.Any()) { foreach (var vaultKey in vaults.Values) { using (var secure = new RFSecureActivity(Context, LoginUsername, new RFSimpleKeyDomain(vaultKey.Root), vaultKey.Enum)) { var vault = secure.OpenKeyVault(passwordHash); var newKey = RFSecure.GenerateNewKey(); vault.ChangeMasterKey(newKey); secure.SaveKeyVault(); } } } Context.UserLog.LogEntry(new RFUserLogEntry { Action = "ResetMaster", Area = "Encryption", Description = "Reset Master Key.", IsUserAction = true, IsWarning = false, Username = Username, Timestamp = DateTimeOffset.Now }); return(Json(true)); } catch (Exception ex) { RFLoginCache.Logout(LoginUsername); return(Json(JsonError.Throw("ResetMaster", ex))); } }