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); } }
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 }); } }