Example #1
0
        public ActionResult ResetPassword(string userEmail, string code, string accountname)
        {
            ResetPasswordViewModel resetPasswordViewModel = new ResetPasswordViewModel();
            var resetpasswordpage = "ResetPassword";

            try
            {
                var securedUserEmail     = Convert.FromBase64String(userEmail);
                var decryptedUserId      = MachineKey.Unprotect(securedUserEmail);
                var securedAccountName   = Convert.FromBase64String(accountname);
                var decryptedAccountName = MachineKey.Unprotect(securedAccountName);
                userEmail   = GetString(decryptedUserId);
                accountname = GetString(decryptedAccountName);
                if (userEmail == null || code == null || accountname == null)
                {
                    Logger.Current.Informational("Any one or more of the parameters  is null.");
                    ModelState.AddModelError("", "Invalid details");
                    return(View(resetPasswordViewModel));
                }
                string modifiedCode = code.Replace(" ", "+");
                GetAccountAuthorizationRequest request = new GetAccountAuthorizationRequest();
                request.name = DomainName;
                var accountID = default(int);
                GetAccountAuthorizationResponse response = accountService.GetAccountByDomainUrl(request);
                if (response.Exception != null)
                {
                    ExceptionHandler.Current.HandleException(response.Exception, DefaultExceptionPolicies.LOG_ONLY_POLICY);
                    ModelState.AddModelError("", "Invalid Account.");
                    return(View(resetPasswordViewModel));
                }
                GetSubscriptionSettingsRequest ssRequest = new GetSubscriptionSettingsRequest();
                if (response != null)
                {
                    accountID = response.AccountId;
                    ssRequest.SubscriptionId = response.SubscriptionId;
                }
                GetSubscriptionSettingsResponse ssResponse = accountService.GetSubscriptionSettings(ssRequest);
                resetpasswordpage = ssResponse.SubscriptionSettings.Where(p => p.SubscriptionSettingType == SubscriptionSettingTypes.ResetPassword).Select(p => p.Value).FirstOrDefault();
                resetPasswordViewModel.AccountId   = accountID;
                resetPasswordViewModel.AccountName = accountname;
                resetPasswordViewModel.Email       = userEmail;
                resetPasswordViewModel.Code        = modifiedCode;
            }
            catch (Exception ex)
            {
                ExceptionHandler.Current.HandleException(ex, DefaultExceptionPolicies.LOG_ONLY_POLICY);
                ModelState.AddModelError("", "[|An error occurred, please try again later.|]");
                return(View(resetpasswordpage, resetPasswordViewModel));
            }
            return(View(resetpasswordpage, resetPasswordViewModel));
        }
Example #2
0
 public ActionResult Register(string userId, string accountId, string emailId)
 {
     try
     {
         if (String.IsNullOrEmpty(userId))
         {
             userId = TempData["UserId"] as string;
         }
         if (String.IsNullOrEmpty(accountId))
         {
             accountId = TempData["AccountId"] as string;
         }
         if (String.IsNullOrEmpty(emailId))
         {
             emailId = TempData["EmailId"] as string;
         }
         if (userId == null || accountId == null)
         {
             Logger.Current.Informational("While registering we got userId or accountID as null.");
             ModelState.AddModelError("", "[|Invalid details|]");
             return(View());
         }
         RegisterViewModel registerViewModel = new RegisterViewModel();
         registerViewModel.AccountId = Convert.ToInt32(accountId);
         registerViewModel.UserId    = userId;
         registerViewModel.Email     = emailId;
         string masterUrl    = string.Empty;
         string registerPage = string.Empty;
         GetAccountSubscriptionDataRequest datarequest = new GetAccountSubscriptionDataRequest();
         datarequest.AccountId = Convert.ToInt32(accountId);
         GetAccountSubscriptionDataResponse response  = accountService.GetSubscriptionDataByAccountID(datarequest);
         GetSubscriptionSettingsRequest     ssRequest = new GetSubscriptionSettingsRequest();
         ssRequest.SubscriptionId = response.AccountSubscriptionData.SubscriptionID;
         GetSubscriptionSettingsResponse ssResponse = accountService.GetSubscriptionSettings(ssRequest);
         masterUrl = ssResponse.SubscriptionSettings.Where(p => p.SubscriptionSettingType == SubscriptionSettingTypes.Master).Select(p => p.Value).FirstOrDefault();
         AddCookie("accountUrl", response.AccountSubscriptionData.AccountUrl.ToString(), 1);
         if (masterUrl != null && masterUrl != DomainName)
         {
             return(Redirect("https://" + masterUrl + "/Register?userId=" + userId + "&accountId=" + accountId + "&emailId=" + emailId));
         }
         registerPage = ssResponse.SubscriptionSettings.Where(p => p.SubscriptionSettingType == SubscriptionSettingTypes.Register).Select(p => p.Value).FirstOrDefault();
         ViewBag.Page = "Register";
         return(View(registerPage, registerViewModel));
     }
     catch (Exception ex)
     {
         ExceptionHandler.Current.HandleException(ex, DefaultExceptionPolicies.LOG_ONLY_POLICY);
         ModelState.AddModelError("", "[|An error occurred, please try again later.|]");
         return(View());
     }
 }
Example #3
0
        public ActionResult ForgotPassword(string email)
        {
            ForgotPasswordViewModel forgotPasswordViewModel = new ForgotPasswordViewModel();
            string forgotPasswordPage = "";

            try
            {
                Logger.Current.Verbose("Request for Forgot Password using domainurl:" + DomainName);
                GetAccountAuthorizationRequest request = new GetAccountAuthorizationRequest();
                request.name = DomainName;
                var accountID = default(int);
                GetAccountAuthorizationResponse response  = accountService.GetAccountByDomainUrl(request);
                GetSubscriptionSettingsRequest  ssRequest = new GetSubscriptionSettingsRequest();
                if (response != null)
                {
                    ssRequest.SubscriptionId = response.SubscriptionId;
                }
                GetSubscriptionSettingsResponse ssResponse = accountService.GetSubscriptionSettings(ssRequest);
                forgotPasswordPage = ssResponse.SubscriptionSettings.Where(p => p.SubscriptionSettingType == SubscriptionSettingTypes.ForgotPassword).Select(p => p.Value).FirstOrDefault();
                ViewBag.PageName   = forgotPasswordPage;
                if (response.Exception != null)
                {
                    ExceptionHandler.Current.HandleException(response.Exception, DefaultExceptionPolicies.LOG_ONLY_POLICY);
                    ModelState.AddModelError("", "Invalid Account.");
                    return(View());
                }
                if (response != null)
                {
                    Logger.Current.Informational("AccountId :" + response.AccountId);
                    Logger.Current.Informational("Account Name :" + response.AccountName);
                    accountID = response.AccountId;
                }
                forgotPasswordViewModel.AccountId = accountID;
                if (response.SubscriptionId == (int)AccountSubscription.Standard || response.SubscriptionId == (int)AccountSubscription.STAdmin)
                {
                    forgotPasswordViewModel.AccountName = response.AccountName;
                }
                forgotPasswordViewModel.AccountPrimaryEmail = response.PrimaryEmail;
                forgotPasswordViewModel.Email = email;
            }
            catch (Exception ex)
            {
                ExceptionHandler.Current.HandleException(ex, DefaultExceptionPolicies.LOG_ONLY_POLICY);
                ModelState.AddModelError("", "[|An error occurred, please try again later.|]");
                return(View(forgotPasswordPage, forgotPasswordViewModel));
            }
            return(View(forgotPasswordPage, forgotPasswordViewModel));
        }
Example #4
0
        public ActionResult Login(string returnUrl, string message, string modelMessage)
        {
            Logger.Current.Informational("In Login returnUrl " + returnUrl + ", message:" + message);
            if (Request.IsAuthenticated)
            {
                GetAccountAuthorizationRequest request = new GetAccountAuthorizationRequest();
                request.name = DomainName;
                GetAccountAuthorizationResponse response = accountService.GetAccountByDomainUrl(request);
                if (response.Exception != null)
                {
                    ExceptionHandler.Current.HandleException(response.Exception, DefaultExceptionPolicies.LOG_ONLY_POLICY);
                    ModelState.AddModelError("", "[|Invalid Account.|]");
                    return(View());
                }
                cachingService.AddAccountPermissions(response.AccountId);
                cachingService.AddUserPermissions(response.AccountId);
                return(RedirectToLocal("", Thread.CurrentPrincipal.Identity.ToRoleID(), Thread.CurrentPrincipal.Identity.ToAccountID(), "", ""));
            }
            if (!String.IsNullOrEmpty(modelMessage))
            {
                ModelState.AddModelError("", modelMessage);
            }
            var defaultHelpURL = ConfigurationManager.AppSettings["helpURL"].ToString();

            ViewBag.SecurityMessage = message;
            if (!string.IsNullOrEmpty(returnUrl) && returnUrl.ToLower().Contains("logoff"))
            {
                returnUrl = null;
            }
            Logger.Current.Verbose("Request for login using domainurl:" + DomainName);
            ViewBag.Page = "Login";
            string loginPage = "Login";
            string masterUrl = DomainName;

            if (!string.IsNullOrWhiteSpace(DomainName))
            {
                GetAccountAuthorizationRequest request = new GetAccountAuthorizationRequest();
                request.name = DomainName;
                var accountID = default(int);
                GetAccountAuthorizationResponse response  = accountService.GetAccountByDomainUrl(request);
                GetSubscriptionSettingsRequest  ssRequest = new GetSubscriptionSettingsRequest();
                if (response != null)
                {
                    ssRequest.SubscriptionId = response.SubscriptionId;
                }
                GetSubscriptionSettingsResponse ssResponse = accountService.GetSubscriptionSettings(ssRequest);
                masterUrl = ssResponse.SubscriptionSettings.Where(p => p.SubscriptionSettingType == SubscriptionSettingTypes.Master).Select(p => p.Value).FirstOrDefault();
                if (masterUrl != null && masterUrl != DomainName)
                {
                    return(Redirect("https://" + masterUrl + "/Login/?modelMessage=" + modelMessage));
                }
                loginPage         = ssResponse.SubscriptionSettings.Where(p => p.SubscriptionSettingType == SubscriptionSettingTypes.Login).Select(p => p.Value).FirstOrDefault();
                ViewBag.LoginUrl  = masterUrl == null ? DomainName : masterUrl;
                ViewBag.LoginPage = loginPage;
                if (response.Exception != null)
                {
                    ExceptionHandler.Current.HandleException(response.Exception, DefaultExceptionPolicies.LOG_ONLY_POLICY);
                    ModelState.AddModelError("", "[|Invalid Account.|]");
                    return(View());
                }
                if (response != null)
                {
                    cachingService.AddAccountPermissions(response.AccountId);
                    Logger.Current.Informational("AccountId :" + response.AccountId);
                    Logger.Current.Informational("Account Name :" + response.AccountName);
                    accountID = response.AccountId;
                    this.Response.Cookies.Add(new HttpCookie("helpURL", !string.IsNullOrEmpty(response.HelpURL) ? response.HelpURL : defaultHelpURL));
                }
                LoginViewModel loginViewModel = new LoginViewModel();
                loginViewModel.AccountId = accountID;
                if (response.SubscriptionId == (int)AccountSubscription.Standard || response.SubscriptionId == (int)AccountSubscription.STAdmin)
                {
                    loginViewModel.AccountName = response.AccountName;
                }
                if (returnUrl != null)
                {
                    ViewBag.ReturnUrl = returnUrl;
                }
                ViewBag.AccountID   = accountID;
                ViewBag.AccountName = response.AccountName;
                if (response.Status == 3)
                {
                    AccountViewModel account = cachingService.GetAccount(accountID);
                    ViewBag.AccountName   = account.AccountName;
                    ViewBag.ImageSrc      = account.Image == null ? "" : account.Image.ImageContent;
                    ViewBag.StatusMessage = account.StatusMessage;
                    return(View("~/Views/Error/Suspended.cshtml"));
                }
                else if (response.Status == 5)
                {
                    AccountViewModel account = cachingService.GetAccount(accountID);
                    ViewBag.AccountName   = account.AccountName;
                    ViewBag.ImageSrc      = account.Image == null ? "" : account.Image.ImageContent;
                    ViewBag.StatusMessage = account.StatusMessage;
                    return(View("~/Views/Error/Maintenance.cshtml"));
                }
                return(View(loginPage, loginViewModel));
            }
            else
            {
                return(View(loginPage));
            }
        }