public AuthorizeResponse Authorize(Credentalis credentalis) { var users = _userService.GetAll(); var roles = _roleService.GetAll(); var userByLogin = users.FirstOrDefault(u => u.Login == credentalis.Login); if (userByLogin != null) { if (userByLogin.HashPassword == credentalis.PasswordHash) { var role = roles.FirstOrDefault(f => f.Id == userByLogin.RoleID); if (role != null) { userByLogin.Role = role; } return(new AuthorizeResponse() { CurrentUser = userByLogin, Found = true, Status = "Пользователь найден" }); } } return(new AuthorizeResponse() { CurrentUser = null, Found = false, Status = "Некорретные входные данные" }); }
private void Login() { PasswordWindow passwordWindow = new PasswordWindow(); if (passwordWindow.ShowDialog() == true) { var credentalis = new Credentalis() { Login = passwordWindow.Login, Password = passwordWindow.Password }; Authorize(credentalis); if (_currentUser != null) { MessageBox.Show("Авторизация пройдена"); RightTopLabel.Content = $"{_currentUser.Name}: {_currentUser.Role.Name}"; } else { MessageBox.Show("Неверные данные"); Login(); } } else { MessageBox.Show("Авторизация не пройдена"); Application.Current.Shutdown(); } }
private void Authorize(Credentalis credentalis) { var result = _authorizeService.Authorize(credentalis); if (result.Found) { _currentUser = result.CurrentUser; UserContext.CurrentUser = result.CurrentUser; } if (_currentUser != null) { HasAdminAccess = _currentUser.RoleID == 4; HasModerAccess = _currentUser.RoleID == 4 || _currentUser.RoleID == 5; scheduleMenu.Visibility = HasModerAccess ? Visibility.Visible : Visibility.Collapsed; userMenu.Visibility = HasModerAccess ? Visibility.Visible : Visibility.Collapsed; //servicesMenu.Visibility = HasModerAccess ? Visibility.Visible : Visibility.Collapsed; //clientMenu.Visibility = HasModerAccess ? Visibility.Visible : Visibility.Collapsed; reportMenu.Visibility = HasAdminAccess ? Visibility.Visible : Visibility.Collapsed; } }
internal void Create(User user) { string sqlExpression = $"INSERT INTO [dbo].[Users] ([Name],[Login],[HashPass],[RoleId])" + $" Values ({ user.Name.WithPartipiants()},{user.Login.WithPartipiants()},{Credentalis.HashPassword("Test").WithPartipiants()},{user.RoleID})"; using (SqlConnection connection = DbConnector.GetConnection) { SqlCommand command = new SqlCommand(sqlExpression, connection); int number = command.ExecuteNonQuery(); } }