示例#1
0
        public async Task <JsonResult> LoginAndAssociate(string email, string password, bool persistCookie)
        {
            if (_userService.Login(email, password, persistCookie, HttpContext))
            {
                var user           = _userService.GetUserByEmail(email);
                var authentication = _owinContext.Authentication;
                var authResult     = await _externalAuthentication.GetAuthenticationResult(authentication);

                if (authResult != null)
                {
                    _userAssociationManager.Associate(user, authResult, HttpContext.Request.UserHostAddress);
                }
                return(Json(new BasicJsonMessage {
                    Result = true
                }));
            }

            return(Json(new BasicJsonMessage {
                Result = false, Message = Resources.LoginBad
            }));
        }
示例#2
0
        public async Task <ViewResult> Create(SignupData signupData)
        {
            signupData.Validate(ModelState, _userService, HttpContext.Request.UserHostAddress);
            if (ModelState.IsValid)
            {
                var user = _userService.CreateUser(signupData, HttpContext.Request.UserHostAddress);
                _profileService.Create(user, signupData);
                var verifyUrl = this.FullUrlHelper("Verify", "Account");
                var result    = _newAccountMailer.Send(user, verifyUrl);
                if (result != System.Net.Mail.SmtpStatusCode.Ok)
                {
                    ViewData["EmailProblem"] = Resources.EmailProblemAccount + result + ".";
                }
                if (_settingsManager.Current.IsNewUserApproved)
                {
                    ViewData["Result"] = Resources.AccountReady;
                    _userService.Login(user.Email, signupData.Password, false, HttpContext);
                }
                else
                {
                    ViewData["Result"] = Resources.AccountReadyCheckEmail;
                }

                var authentication = _owinContext.Authentication;
                var authResult     = await _externalAuthentication.GetAuthenticationResult(authentication);

                if (authResult != null)
                {
                    _userAssociationManager.Associate(user, authResult, HttpContext.Request.UserHostAddress);
                }

                return(View("AccountCreated"));
            }
            SetupCreateData();
            return(View(signupData));
        }