public async Task <ActionResult> Login(Login login) { using (UOSEntities db = new UOSEntities()) { if (Request.IsAuthenticated) { return(RedirectToAction("Index", "Home")); } if (!ModelState.IsValid) { return(View(login)); } try { var result = await SignInManager.PasswordSignInAsync(login.Email, login.Password, false, shouldLockout : true); switch (result) { case SignInStatus.Success: { var dbUser = db.AspNetUsers.SingleOrDefault(u => u.UserName == login.Email); var isDisable = dbUser.isDisable; if (isDisable == false) { var claims = UserManager.GetClaims(dbUser.Id); if (claims != null) { foreach (var claim in claims) { UserManager.RemoveClaim(dbUser.Id, claim); } } var dbyear = db.BI_Affi_pop_year_for_the_affilation(); SessionObject obj = new SessionObject(); foreach (var year in dbyear) { obj.Affiliation_Year = Convert.ToInt32(year.Year); obj.Id_year_for_affilation = Convert.ToInt32(year.ID); obj.Affiliation_Year = Convert.ToInt32(year.Year); obj.Id_year_for_affilation = Convert.ToInt32(year.ID); } obj.Institute_Id = dbUser.Institute_ID.ToString(); UserManager.AddClaim(dbUser.Id, new Claim("InstituteId", obj.Institute_Id.ToString())); UserManager.AddClaim(dbUser.Id, new Claim("AffiliationYear", obj.Affiliation_Year.ToString())); UserManager.AddClaim(dbUser.Id, new Claim("YearId", obj.Id_year_for_affilation.ToString())); return(RedirectToAction("Login", "Accounts")); } return(View(login)); } case SignInStatus.LockedOut: { ViewBag.Account = "Account Is Locked"; return(View(login)); } case SignInStatus.RequiresVerification: { return(RedirectToAction("SendCode", "Accounts", new { login = login })); } case SignInStatus.Failure: { ViewBag.UserError = "UserName And Password Does Not Match"; return(View(login)); } default: return(View(login)); } } catch (Exception e) { ViewBag.RegisterError = "Error While Logging Your Account Contact Admin Person" + e.Message; return(View(login)); } } }