Exemplo n.º 1
0
        public async Task <JsonNetResult> Modal(LoginPostViewModel model)
        {
            var loginResponse = new GetLoginResponse();

            if (string.IsNullOrWhiteSpace(model.Language) || string.IsNullOrEmpty(model.Language))
            {
                loginResponse.Success      = false;
                loginResponse.ResponseData = null;
                loginResponse.Message      = "An error has occured.";

                if (_logger.IsErrorEnabled)
                {
                    _logger.Error("Language is null or empty in  Modal POST action of surface controller LoginController");
                }

                return(ReturnJsonResponse(loginResponse));
            }

            var    culture     = GetCultureInformationForLanguage(model.Language);
            string locale      = culture.Locale;
            string countryCode = culture.CountryCode;

            if (ModelState.IsValid)
            {
                var syncResult = await _syncService.SynchroniseUmbracoMember(locale, countryCode, model.Username, model.Password);

                //differentiate between the back office users and website members
                if (_membershipService.ValidateUser(model.Username, model.Password) && _umbracoHelper.MemberExists(model.Username))
                {
                    _formsAuthenticationService.SignIn(model.Username, model.RememberMe);

                    var umbracoMember = _umbracoHelper.RetrieveUmbracoMember(model.Username);
                    var user          = MapUser(umbracoMember);


                    loginResponse.Success      = true;
                    loginResponse.ResponseData = user;
                    return(ReturnJsonResponse(loginResponse));
                }
                loginResponse.Success      = false;
                loginResponse.ResponseData = null;
                loginResponse.Message      = "Invalid credentials";
                return(ReturnJsonResponse(loginResponse));
            }

            loginResponse.Success = false;
            loginResponse.Message = GetErrorsFromModelState(ModelState).FirstOrDefault();
            return(ReturnJsonResponse(loginResponse));
        }
Exemplo n.º 2
0
        public IHttpResponse LoginPost(LoginPostViewModel model)
        {
            var hashedPassword = this.hashService.Hash(model.Password);

            var user = this.Context
                       .Users
                       .FirstOrDefault(u => u.Username == model.Username && u.HashedPassword == hashedPassword);

            if (user == null)
            {
                return(this.Redirect("/Users/Login"));
            }

            var response = this.Redirect("/");

            this.SignInUser(model.Username);

            return(response);
        }