コード例 #1
0
        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 = "Некорретные входные данные"
            });
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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;
            }
        }
コード例 #4
0
ファイル: UserService.cs プロジェクト: kusachiy/beautysaloon
        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();
            }
        }