2014-10-26 52 views
4

如何驗證ASP.NET MVC 5.1.2中的用戶?如何在ASP.NET MVC 5.1.2中以編程方式驗證用戶或進行身份驗證OWIN

在舊版本的MVC 3,4中,我們擁有簡單的成員資格。所以我們使用membership.validate(user.name,password)。但事情已經在asp.net mvc的5

完全地改變了計劃登錄後像

await SignInAsync(user, model.RememberMe); // after login HttpContext.Current.User.Identity.IsAuthenticated is false . Odd. 
    private async Task SignInAsync(ApplicationUser user, bool isPersistent) { 
     AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); 
     AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, await user.GenerateUserIdentityAsync(Manager)); 
    } 

沒有以前的身份驗證系統。爲了驗證,我們可以做到這一點用戶:

回答

4
 public static ApplicationUserManager Manager { 
     get { 
      return _userManager ?? HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
     } 
     private set { 
      _userManager = value; 
     } 
    } 

    public static async Task<ApplicationUser> GetUserAsync(string userName, string password) { 
     return await Manager.FindAsync(userName: userName, password: password); 
    } 
    public static ApplicationUser GetUserByEmail(string email, string password) { 
     var user = Manager.FindByEmail(email); 
     return Manager.Find(user.UserName, password); 
    } 

如果這些不返回任何用戶那麼我們就必須假定用戶是有效的,否則沒有。