예제 #1
0
        public static List <GetRegisterViewModel> GetUserDetails()
        {
            List <GetRegisterViewModel> rvml = new List <GetRegisterViewModel>();

            try
            {
                using (var entity = new HirePressEntity())
                {
                    var users = entity.AspNetUsers;
                    foreach (var user in users)
                    {
                        GetRegisterViewModel rvm = new GetRegisterViewModel();
                        ArrayList            al  = new ArrayList();
                        foreach (var role in user.AspNetRoles)
                        {
                            al.Add(role.Name);
                        }
                        rvm.Name   = user.FirstName + " " + user.LastName;
                        rvm.Email  = user.Email;
                        rvm.UserID = user.Id;
                        rvm.Roles  = al;
                        rvml.Add(rvm);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(rvml);
        }
예제 #2
0
        public IHttpResponse GetRegister()
        {
            HttpCookie cookie;

            if (this.Request.Cookies.ContainsCookie(AuthenticationCookieKey))
            {
                this.Request.Cookies.GetCookie(AuthenticationCookieKey).Delete();

                cookie = this.Request.Cookies.GetCookie(AuthenticationCookieKey);

                this.Response.AddCookie(cookie);
            }

            GetRegisterViewModel viewModel = new GetRegisterViewModel()
            {
                ErrorMessage = string.Empty
            };

            return(this.View("Register", HttpResponseStatusCode.Ok, viewModel));
        }
예제 #3
0
        public IHttpResponse PostRegister(DoRegisterViewModel model)
        {
            Regex usernameAndPasswordRegex = new Regex(@"^\w+$");
            Regex emailRegex = new Regex(@"^[A-z]+\@[A-z]+\.[A-z]{1,4}$");

            string hashedPassword        = this.hashService.Compute256Hash(model.Password);
            string hashedConfirmPassword = this.hashService.Compute256Hash(model.Password);

            model.Email = StringExtensions.UrlDecode(model.Email);

            if (emailRegex.Match(model.Email).Success == false ||
                usernameAndPasswordRegex.Match(model.Password).Success == false ||
                model.Password.Length < 3 ||
                model.Password.Length > 50 ||
                (usernameAndPasswordRegex.Match(model.Username).Success == false ||
                 model.Username.Length < 3 ||
                 model.Username.Length > 30))
            {
                GetRegisterViewModel viewModel = new GetRegisterViewModel()
                {
                    ErrorMessage = InvalidRegisterInformationMessage
                };

                return(this.View("Register", HttpResponseStatusCode.BadRequest, viewModel));
            }
            if (this.Context.Users.Any(user => user.Email == model.Email))
            {
                GetRegisterViewModel viewModel = new GetRegisterViewModel()
                {
                    ErrorMessage = EmailAlreadyExistsErrorMessage
                };

                return(this.View("Register", HttpResponseStatusCode.BadRequest, viewModel));
            }
            if (hashedConfirmPassword == hashedPassword)
            {
                //Adding user to db
                User user = new User
                {
                    Id       = Guid.NewGuid().ToString(),
                    Username = model.Username,
                    Password = hashedPassword,
                    Email    = model.Email
                };

                using (this.Context)
                {
                    if (this.Context.Users.Any(u => u.Username == model.Username) == true)
                    {
                        GetRegisterViewModel viewModel = new GetRegisterViewModel()
                        {
                            ErrorMessage = UsernameAlreadyExistsErrorMessage
                        };

                        return(this.View("Register", HttpResponseStatusCode.BadRequest, viewModel));
                    }

                    this.Context.Users.Add(user);
                    this.Context.SaveChanges();
                }
            }

            //Adding cookie
            HttpCookie cookie = new HttpCookie(AuthenticationCookieKey, this.UserCookieService.EncryptString(model.Username, EncryptKey));

            this.Request.Cookies.Add(cookie);
            this.Response.Cookies.Add(cookie);

            return(this.View("Logged", HttpResponseStatusCode.Ok, model));
        }