How to validate username and password of user before log in in ASP.net Identity?
14,956
Solution 1
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);
Solution 2
I use something like this:
public static bool ValidateUser(string Email, string Password)
{
var user = UserManager.FindByName(Email);
return SignInManager.UserManager.CheckPassword(user, Password);
}
Author by
Mohammed Faisal Khan
Updated on June 03, 2022Comments
-
Mohammed Faisal Khan almost 2 years
In my ASP.Net application, want to validate username and password of users before logging them into the application. I am using ASP.net Identity framework for membership.
Want to make sure whether the entered username and password exist or not. something like this one
Membership.ValidateUser(username,password)
which was used in default membership but can not be used with ASP.net Identity. Tried this one but no luck?var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>(); var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>(); var user = manager.Find(userName,Password);
-
aruno over 5 yearsdon't forget the
await
if you are using the async versions (which you probably should be)