public ActionResult Login(LoginModel model, string returnUrl) { if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) { return RedirectToLocal(returnUrl); } // 如果我们进行到这一步时某个地方出错,则重新显示表单 ModelState.AddModelError("", "提供的用户名或密码不正确。"); return View(model); }
public void Autorization(LoginModel model,int Id) { ClaimsIdentity claim = new ClaimsIdentity("ApplicationCookie", ClaimsIdentity.DefaultNameClaimType, ClaimsIdentity.DefaultRoleClaimType); claim.AddClaim(new Claim(ClaimTypes.NameIdentifier, Id.ToString(), ClaimValueTypes.String)); claim.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, model.Name, ClaimValueTypes.String)); claim.AddClaim(new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", "OWIN Provider", ClaimValueTypes.String)); claim.AddClaim(new Claim(ClaimsIdentity.DefaultRoleClaimType, model.Role, ClaimValueTypes.String)); AuthenticationManager.SignOut(); AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = true }, claim); }
public ActionResult Login(LoginModel model) { if (ModelState.IsValid) { if (accountservice.UserExist(model.Name)) { var user = accountservice.GetUserByName(model.Name); bool isrole = accountservice.CheckUserForRole(model.Name,model.Role); if (isrole && Crypto.VerifyHashedPassword(user.Password, model.Password)) { authenticate.Autorization(model, user.Id); return RedirectToAction("Index", "Home"); } } else { ModelState.AddModelError("", "Пользователя с таким логином и паролем нет"); } } ModelState.AddModelError("", "Incorrect input data"); ViewBag.Roles = accountservice.GetAllNames(); return View(); }