public virtual IHttpActionResult Register(RegisterRequest registerRequest) { //todo: Captcha for bots or not?! if (registerRequest == null) { return(BadRequest("No body found in the request")); } var returnUrl = registerRequest.ReturnUrl; if (string.IsNullOrWhiteSpace(returnUrl) || !UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), returnUrl)) { returnUrl = MyAccountUrlProvider.GetMyAccountUrl(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }); } var registerParam = new CreateUserParam { Username = registerRequest.Username, Password = registerRequest.Password, Email = registerRequest.Email, FirstName = registerRequest.FirstName, LastName = registerRequest.LastName, PhoneNumber = registerRequest.PhoneNumber, PasswordQuestion = registerRequest.PasswordQuestion, PasswordAnswer = registerRequest.PasswordAnswer, ReturnUrl = returnUrl, Scope = ComposerContext.Scope, CultureInfo = ComposerContext.CultureInfo, GuestCustomerId = ComposerContext.CustomerId }; var createAccountViewModel = MembershipViewService.RegisterAsync(registerParam).Result; if (!createAccountViewModel.IsSuccess) { return(Ok(createAccountViewModel)); } var loginParam = new LoginParam { CultureInfo = ComposerContext.CultureInfo, Scope = ComposerContext.Scope, GuestCustomerId = ComposerContext.CustomerId, Username = registerRequest.Email, Password = registerRequest.Password }; var loginViewModel = MembershipViewService.LoginAsync(loginParam).Result; ComposerContext.IsGuest = false; ComposerContext.CustomerId = createAccountViewModel.CustomerId; FormsAuthentication.SetAuthCookie(createAccountViewModel.Username, true, WebsiteContext.WebsiteId.ToString()); return(Ok(createAccountViewModel)); }
public virtual IHttpActionResult SignIn(LoginViewModel loginRequest) { if (loginRequest == null) { return(BadRequest("Request body cannot be null")); } var returnUrl = loginRequest.ReturnUrl; if (string.IsNullOrWhiteSpace(returnUrl) || !UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), returnUrl)) { returnUrl = MyAccountUrlProvider.GetMyAccountUrl(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }); } var loginParam = new LoginParam { Password = loginRequest.Password, Username = loginRequest.Username, Scope = ComposerContext.Scope, CultureInfo = ComposerContext.CultureInfo, ReturnUrl = returnUrl, GuestCustomerId = ComposerContext.CustomerId, }; var loginViewModel = MembershipViewService.LoginAsync(loginParam).Result; if (!loginViewModel.IsSuccess) { return(Ok(loginViewModel)); } ComposerContext.CustomerId = loginViewModel.CustomerId; ComposerContext.IsGuest = false; if (loginRequest.IsRememberMe) { FormsAuthentication.SetAuthCookie( loginViewModel.Username, SiteConfiguration.CookieAccesserSettings.TimeoutInMinutes, loginRequest.IsRememberMe, WebsiteContext.WebsiteId.ToString(), SiteConfiguration.CookieAccesserSettings.RequireSsl); } else { FormsAuthentication.SetAuthCookie(loginViewModel.Username, true, WebsiteContext.WebsiteId.ToString()); } return(Ok(loginViewModel)); }