public void CreatePassword(CreatePassword password) { DataSet applicationPasswordDataSet = new DataSet(); string userPassword = "******"; using (SqlConnection applicationPasswordConnection = new SqlConnection(ApplicationSettings.IDENTITY_CONNECTION_STRING)) { applicationPasswordConnection.Open(); string selectUserPassword = $"select * from {userPassword}"; using (SqlDataAdapter passwordAdapter = new SqlDataAdapter(selectUserPassword, applicationPasswordConnection)) { passwordAdapter.Fill(applicationPasswordDataSet, userPassword); SqlCommandBuilder userPasswordCommandBuilder = new SqlCommandBuilder(passwordAdapter); ApplicationUserPasswordHisroty uPassword = new ApplicationUserPasswordHisroty() { ApplicationUserId = Guid.NewGuid().ToString(), SetupDate = DateTime.Now.ToString("yyyy-MM-dd"), InvalidatedDate = DateTime.Now.AddDays(30).ToString("yyyy-MM-dd"), PasswordHash = password.PasswordHash }; passwordAdapter.SelectCommand = new SqlCommand(selectUserPassword, applicationPasswordConnection); userPasswordCommandBuilder = new SqlCommandBuilder(passwordAdapter); passwordAdapter.Fill(applicationPasswordDataSet, userPassword); var dataRow = applicationPasswordDataSet.Tables[userPassword].NewRowWithData(uPassword); applicationPasswordDataSet.Tables[userPassword].Rows.Add(dataRow); passwordAdapter.Update(applicationPasswordDataSet, userPassword); MessageBox.Show("Пароль добавлен"); } } }
public void ChangeUserPassword(CreatePassword passwordViewModel) { DataSet identityDataSet = new DataSet(); string userTable = "[dbo].[ApplicationUsers]"; string userPasswordTable = "[dbo].[ApplicationUserPasswordHistories]"; string userId = string.Empty; using (SqlConnection identityConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["IdentityDbConnectionString"].ConnectionString)) { identityConnection.Open(); string selectEmailPasswordSql = $"select u.Email, u.Id, p.SetupDate, p.PasswordHash " + $"from {userTable} u, {userPasswordTable} p " + $"where u.Id=p.ApplicationUserId and u.Email='{passwordViewModel.Email}'" + $"order by p.SetupDate desc"; using (SqlDataAdapter identityAdapter = new SqlDataAdapter(selectEmailPasswordSql, identityConnection)) { identityAdapter.Fill(identityDataSet); SqlCommandBuilder identityCommandBuilder = new SqlCommandBuilder(identityAdapter); DataTable dataTable = identityDataSet.Tables[0]; userId = dataTable.Rows[1][0].ToString(); int cnt = 0; if (dataTable.Rows.Count <= 5) { cnt = dataTable.Rows.Count; } else if (dataTable.Rows.Count > 5) { cnt = 5; } for (int i = 0; i < cnt; i++) { if (passwordViewModel.newPassword == dataTable.Rows[i][3].ToString()) { throw new ApplicationException($"{passwordViewModel.newPassword} уже был использован"); } } identityDataSet.Clear(); string selectUserPassword = $"select * from {userPasswordTable} " + $"where ApplicationUserId = '{userId}' " + $"and InvalidatedDate is null"; identityAdapter.SelectCommand = new SqlCommand(selectUserPassword, identityConnection); identityCommandBuilder = new SqlCommandBuilder(identityAdapter); identityAdapter.Fill(identityDataSet); DataTable table = identityDataSet.Tables[0]; table.Rows[1]["InvalidatedDate"] = DateTime.Now.ToString("yyyy-MM-dd"); identityAdapter.Update(identityDataSet); identityDataSet.Clear(); ApplicationUserPasswordHisroty userPassword = new ApplicationUserPasswordHisroty() { Id = 8, ApplicationUserId = userId, SetupDate = DateTime.Now.ToString("yyyy-MM-dd"), PasswordHash = passwordViewModel.newPassword }; string userPasswordSql = $"select * from {userPasswordTable}"; identityAdapter.SelectCommand = new SqlCommand(userPasswordSql, identityConnection); identityCommandBuilder = new SqlCommandBuilder(identityAdapter); identityAdapter.Fill(identityDataSet, userPasswordTable); var dataRow = identityDataSet.Tables[userPasswordTable].NewRowWithData(userPassword); identityDataSet.Tables[userPasswordTable].Rows.Add(dataRow); identityAdapter.Update(identityDataSet, userPasswordTable); } } }