Esempio n. 1
0
        public void SendConfirmationEmail(HttpContext context)
        {
            try
            {

                ApplicationBase app = LcpsDbContext.DefaultApp;
                if (!this.Email.ToLower().EndsWith(app.SMTPDomain))
                    throw new Exception(string.Format("Only email accounts that are a part of the {0} domain are permissible", app.SMTPDomain));

                Guid key;
                string firstName;
                string lastName;
                string server = context.Request.ServerVariables["SERVER_NAME"];
                string port = context.Request.ServerVariables["SERVER_PORT"];
                string domain = server + ":" + port;
                string ip = context.Request.ServerVariables["REMOTE_HOST"];
                string d = DateTime.Now.ToString();
                string brwsr = context.Request.ServerVariables["HTTP_USER_AGENT"];

                LcpsEmailContext _email = new LcpsEmailContext();
                LcpsEmailKey k = _email.LcpsEmailKeys.FirstOrDefault(x => x.EmailAddress.ToLower() == this.Email.ToLower());
                if(k.StaffKey == null)
                {
                    key = k.StudentKey.Value;
                    firstName = k.StuFirstName;
                    lastName = k.StuLastName;
                }
                else
                {
                    key = k.StaffKey.Value;
                    firstName = k.StfFirstName;
                    lastName = k.StfLastName;
                }

                string bPath = context.Server.MapPath("~/Areas/Public/Views/Home/EmailConfirmationBody.html");
                string bTextExp = File.ReadAllText(bPath);
                string bText = string.Format(bTextExp, firstName, lastName, domain, key.ToString(), ip, d, brwsr);

                EmailEngine.SendEmail(this.Email, "LCPS IntRanet Account Confirmation", bText);
            }
            catch(Exception ex)
            {
                throw new Exception("Could not send confirmation email", ex);
            }
        }
Esempio n. 2
0
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            //LcpsGmailContext gmail = new LcpsGmailContext();
            //gmail.Validate();
            

            LcpsEmailContext c = new LcpsEmailContext();
            LcpsEmailKey k = c.LcpsEmailKeys.FirstOrDefault(x => x.EmailAddress.ToLower() == model.UserName.ToLower());


            if (k == null)
            {
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, change to shouldLockout: true
                var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: true);


                switch (result)
                {
                    case SignInStatus.Success:
                        return RedirectToLocal(returnUrl);
                    case SignInStatus.LockedOut:
                        return View("Lockout");
                    case SignInStatus.RequiresVerification:
                        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                    case SignInStatus.Failure:
                    default:
                        ModelState.AddModelError("", "Invalid login attempt.");
                        return View(model);
                }
            }
            else
            {
                return RedirectToAction("EmailNotify", new { u = model.UserName });
            }
        }