2017-01-13 15 views
1

私のASP.Netアプリケーションでは、アプリケーションにログインする前にユーザー名とパスワードを検証する必要があります。私はメンバーシップのためにASP.net Identityフレームワークを使用しています。ASP.netアイデンティティにログインする前にユーザーのユーザー名とパスワードを検証する方法は?

入力したユーザー名とパスワードが存在するかどうかを確認します。 このようなものMembership.ValidateUser(username,password)これはデフォルトのメンバーシップで使用されましたが、ASP.netアイデンティティでは使用できません。 これを試しましたが、運はありませんでしたか?私はこのようなものを使用

var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>(); 

var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>(); 

var user = manager.Find(userName,Password); 
+1

を受け入れたとして、あなたの質問に答えるように見えるようaelagawyの答えをマークしてください。 – Megrez7

答えて

2
var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>(); 
var user = manager.FindByName(Email.Text); 

//check for credentials before sign in ..  
var validCredentials = signinManager.UserManager.CheckPassword(user, Password.Text); 
if (validCredentials) 
{ 
    //sample code to run if user's credentials is valid and before login 
    if(!manager.IsInRole(user.Id, "Administrators")) 
    { 
     FailureText.Text = "you need a higher permission level in order to login"; 
     return; 
    } 
} 

//then sign in 
var result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout: false); 
0

public static bool ValidateUser(string Email, string Password) 
    { 
     var user = UserManager.FindByName(Email); 
     return SignInManager.UserManager.CheckPassword(user, Password); 
    } 
関連する問題