public HttpResponseMessage PostLogin([FromBody] UserModel user)
        {
            var messageModel = new MessageModel();
            var foundUser    = _userDal.GetUserByUsername(user.Username);

            if (foundUser == null)
            {
                messageModel.Message = "User with given email does not exist";
                return(Request.CreateResponse(HttpStatusCode.BadRequest, messageModel));
            }

            var password = foundUser.Salt + user.Password;

            if (foundUser.Password.Equals(SHA512Encrypter.Encrypt(password), StringComparison.OrdinalIgnoreCase))
            {
                var checkForSession = _userSessionDal.GetAllUserSessions().FirstOrDefault(u => u.UserID == foundUser.Id && u.IsValid) != null;
                if (checkForSession)
                {
                    _userSessionDal.SetSessionInvalid(foundUser.Id);
                }

                _userSessionDal.AddUserSession(foundUser.Id);

                messageModel.Authorization =
                    _userSessionDal.GetAllUserSessions()
                    .FirstOrDefault(u => u.UserID == foundUser.Id && u.IsValid).Id.ToString();

                messageModel.Message = foundUser.IsAdmin ? "Admin" : "User";
                return(Request.CreateResponse(HttpStatusCode.OK, messageModel));
            }

            messageModel.Message = "Password is incorrect";
            return(Request.CreateResponse(HttpStatusCode.BadRequest, messageModel));
        }
        public ActionResult Login(string username, string password)
        {
            var viewModel = new UserViewModel();

            viewModel.Username = username;

            using (QuizEntities context = new QuizEntities())
            {
                context.Database.Exists();
                if (context != null)
                {
                    if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))
                    {
                        viewModel.ErrorMessage = "Incorrect username and/or password!";
                        return(View(viewModel));
                    }

                    var user = _userDal.GetUserByUsername(username);

                    if (user != null && user.ActivStatus)
                    {
                        if (user.Password.Equals(SHA512Encrypter.Encrypt(password), StringComparison.OrdinalIgnoreCase))
                        {
                            FormsAuthentication.SetAuthCookie(user.Username, false);
                            var quizUser = new QuizUser
                            {
                                Id       = user.Id,
                                Username = user.Username,
                                IsAdmin  = user.IsAdmin
                            };
                            if (!user.IsAdmin)
                            {
                                quizUser.TestId = _userTestDal.GetTestIdByUserId(user.Id);
                            }

                            this.Session.Add("QuizUser", quizUser);

                            if (user.IsAdmin)
                            {
                                return(RedirectToAction("StartPageAdmin", "Admin"));
                            }

                            return(RedirectToAction("StartPage", "Quiz"));
                        }
                    }
                    viewModel.ErrorMessage = "Incorrect username and/or password!";
                }
                else
                {
                    viewModel.ErrorMessage = "You are not connect to database";
                }
            }
            return(View(viewModel));
        }
Example #3
0
        public async Task <bool> ValidateUserAsync(PersonDto person)
        {
            var downloader = new HTTP.BlackListVotersDownloader();
            var persons    = await downloader.GetDisallowedPersonsAsync();

            if (persons == null)
            {
                return(false);
            }

            var personPesel = SHA512Encrypter.SHA512(person.Pesel);

            return(persons.Any(p => SHA512Encrypter.SHA512(p.Pesel) == personPesel) ? false : true);
        }
Example #4
0
        public async Task <bool> ValidateUserFromDatabase(PersonDto person)
        {
            var personInDb = await Task.Run(
                () => DatabaseManager.Instance.GetPerson(SHA512Encrypter.SHA512(person.Pesel)));

            if (personInDb == null)
            {
                return(true);
            }

            person.Voted = personInDb.Voted;

            return(person.Name.ToLower().Trim() == personInDb.Name.ToLower().Trim() &&
                   person.Surname.ToLower().Trim() == personInDb.Surname.ToLower().Trim());
        }
        public HttpResponseMessage PostUser([FromBody] UserDataModel userEmail)
        {
            var isRegistered = _userDal.GetUserByUsername(userEmail.Email) != null;

            if (isRegistered)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { Message = "User already exists" }));
            }
            var id       = Guid.NewGuid();
            var salt     = Guid.NewGuid();
            var password = SHA512Encrypter.Encrypt(salt + "1234");

            _userDal.AddUser(id, userEmail.Email, salt, password, false);



            var message = new MailMessage();

            var centralEmail = "*****@*****.**";

            message.To.Add(new MailAddress(userEmail.Email));
            message.From = new MailAddress(centralEmail);

            message.Subject = "Quiz Password";

            message.Body = "Hello user your password is : 1234";



            using (var smtp = new SmtpClient())
            {
                var credential = new NetworkCredential
                {
                    UserName = centralEmail,
                    Password = "******"
                };
                smtp.Credentials = credential;
                smtp.Host        = "smtp.gmail.com";
                smtp.Port        = 587;
                smtp.EnableSsl   = true;
                smtp.Send(message);
            }

            return(Request.CreateResponse(HttpStatusCode.Created));
        }
        public ActionResult AddUser(UserAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                _userDal.AddUser(model.Username, SHA512Encrypter.Encrypt(model.Password), model.Email);

                var userId = _userDal.GetUserByUsername(model.Username).Id;
                var tests  = _testsDal.GetAllTests();

                int testId = 0;
                foreach (var test in tests)
                {
                    if (test.Name == model.TestName)
                    {
                        testId = test.Id;
                    }
                }

                _userTestDal.AddUserTest(userId, testId, false);
                return(RedirectToAction("UserAdmin", "AdminUser"));
            }
            SetView();
            return(View("UserAdmin", model));
        }