Ejemplo n.º 1
0
        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("Пароль добавлен");
                }
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }