如何在登录之前验证用户的用户名和密码 ASP.net 身份



在我的 ASP.Net 应用程序中,希望在用户登录应用程序之前验证用户的用户名和密码。我正在使用 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);
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);

我使用这样的东西:

public static bool ValidateUser(string Email, string Password)
    {
        var user = UserManager.FindByName(Email);
        return SignInManager.UserManager.CheckPassword(user, Password); 
    }

最新更新