public async Task<ActionResult> Login(LoginModel model) { if (!ModelState.IsValid) { return View(model); } var blogContext = new BlogContext(); // XXX WORK HERE // fetch a user by the email in model.Email User user = await blogContext.Users.Find(Builders<User>.Filter.Eq(x => x.Email, model.Email)).SingleOrDefaultAsync(); if (user == null) { ModelState.AddModelError("Email", "Email address has not been registered."); return View(model); } var identity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, user.Name), new Claim(ClaimTypes.Email, user.Email) }, "ApplicationCookie"); var context = Request.GetOwinContext(); var authManager = context.Authentication; authManager.SignIn(identity); return Redirect(GetRedirectUrl(model.ReturnUrl)); }
public ActionResult Login(string returnUrl) { var model = new LoginModel { ReturnUrl = returnUrl }; return View(model); }
public async Task<ActionResult> Login(LoginModel model) { if (!ModelState.IsValid) { return View(model); } var blogContext = new BlogContext(); // XXX WORK HERE // fetch a user by the email in model.Email string email = model.Email; var builder = Builders<User>.Filter; FilterDefinition<User> searchFilter = builder.Eq("Email", email); IMongoCollection<User> usersCollection = getCollection(); User user = null; var list = await usersCollection.Find(searchFilter).Limit(1).ToListAsync(); foreach (User doc in list) { Console.WriteLine("Found User:"******"Email", "Email address has not been registered."); return View(model); } var identity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, user.Name), new Claim(ClaimTypes.Email, user.Email) }, "ApplicationCookie"); var context = Request.GetOwinContext(); var authManager = context.Authentication; authManager.SignIn(identity); return Redirect(GetRedirectUrl(model.ReturnUrl)); }