public async Task <ActionResult> Register(int?editionId, SubscriptionStartType?subscriptionStartType = null) { CheckTenantRegistrationIsEnabled(); var model = new TenantRegisterViewModel { PasswordComplexitySetting = await _passwordComplexitySettingStore.GetSettingsAsync(), SubscriptionStartType = subscriptionStartType, EditionPaymentType = EditionPaymentType.NewRegistration }; if (editionId.HasValue) { model.EditionId = editionId.Value; model.Edition = await _tenantRegistrationAppService.GetEdition(editionId.Value); } ViewBag.UseCaptcha = UseCaptchaOnRegistration(); return(View(model)); }
public virtual async Task <ActionResult> Register(RegisterTenantInput model) { try { if (UseCaptchaOnRegistration()) { model.CaptchaResponse = HttpContext.Request.Form[RecaptchaValidator.RecaptchaResponseKey]; } var result = await _tenantRegistrationAppService.RegisterTenant(model); CurrentUnitOfWork.SetTenantId(result.TenantId); var user = await _userManager.FindByNameAsync(AbpUserBase.AdminUserName); //Directly login if possible if (result.IsTenantActive && result.IsActive && !result.IsEmailConfirmationRequired && !_webUrlService.SupportsTenancyNameInUrl) { var loginResult = await GetLoginResultAsync(user.UserName, model.AdminPassword, model.TenancyName); if (loginResult.Result == AbpLoginResultType.Success) { await _signInManager.SignOutAsync(); await _signInManager.SignInAsync(loginResult.Identity, false); SetTenantIdCookie(result.TenantId); return(Redirect(Url.Action("Index", "Home", new { area = "AppAreaName" }))); } Logger.Warn("New registered user could not be login. This should not be normally. login result: " + loginResult.Result); } //Show result page var resultModel = ObjectMapper.Map <TenantRegisterResultViewModel>(result); resultModel.TenantLoginAddress = _webUrlService.SupportsTenancyNameInUrl ? _webUrlService.GetSiteRootAddress(model.TenancyName).EnsureEndsWith('/') + "Account/Login" : ""; return(View("RegisterResult", resultModel)); } catch (UserFriendlyException ex) { ViewBag.UseCaptcha = UseCaptchaOnRegistration(); ViewBag.ErrorMessage = ex.Message; var viewModel = new TenantRegisterViewModel { PasswordComplexitySetting = await _passwordComplexitySettingStore.GetSettingsAsync(), EditionId = model.EditionId, SubscriptionStartType = model.SubscriptionStartType, EditionPaymentType = EditionPaymentType.NewRegistration, Gateway = model.Gateway, PaymentId = model.PaymentId }; if (model.EditionId.HasValue) { viewModel.Edition = await _tenantRegistrationAppService.GetEdition(model.EditionId.Value); viewModel.EditionId = model.EditionId.Value; } return(View("Register", viewModel)); } }