C# Winforms登录中的ASP.NET核心标识未进行身份验证
我在Winforms应用程序中使用C#,我将身份连接到数据库中可以找到用户的地方。我有一个简单的登录表单,我无法工作。我可以找到用户,但无法通过密码验证用户。我有一个文本框用户名、一个密码、一个按钮和一个显示结果的标签。这是我的密码:C# Winforms登录中的ASP.NET核心标识未进行身份验证,c#,asp.net,winforms,authentication,asp.net-identity,C#,Asp.net,Winforms,Authentication,Asp.net Identity,我在Winforms应用程序中使用C#,我将身份连接到数据库中可以找到用户的地方。我有一个简单的登录表单,我无法工作。我可以找到用户,但无法通过密码验证用户。我有一个文本框用户名、一个密码、一个按钮和一个显示结果的标签。这是我的密码: private async void LoginButton_ClickAsync(object sender, EventArgs e) { if (!String.IsNullOrEmpty(Username.Text) &&
private async void LoginButton_ClickAsync(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(Username.Text) &&
!String.IsNullOrEmpty(Password.Text))
{
var context = new MyDbContext();
var userManager = new UserManager<ApplicationUser>(new
UserStore<ApplicationUser>(context));
//THIS SUCCESSFULLY FINDS THE USER
ApplicationUser user = await userManager.FindByEmailAsync(UxUsername.Text);
if (user == null)
{
ResultLabel.Text = "NOT FOUND";
}
if (userManager.PasswordHasher.VerifyHashedPassword(user.PasswordHash, Password.Text)
!= PasswordVerificationResult.Failed)
{
ResultLabel.Text = "MATCH FOR USER AND PASSWORD!";
}
ResultLabel.Text = "NOT FOUND";
}
}
我正在为MVC应用程序使用同一个数据库,并且使用相同的凭据登录
谢谢。使用
SignInManager
类中的CheckPasswordSignInAsync
对用户进行身份验证
ApplicationUser user = await userManager.FindByEmailAsync(UxUsername.Text);
var signInResult = _signInManager.CheckPasswordSignInAsync(user, ,User.Password, false);
要使用SignInManager
,应将其注入表单类
注意:SignInManager位于Microsoft.AspNetCore.Identity
如何将SignInManager引入我的Winforms应用程序?我确实对此进行了研究,但我无法让它在我的项目中发挥作用。我可以引入SignInManager,但它是我从Microsoft.AspNet.Identity.Owin引入的-这允许我使用_SignInManager.PasswordSignIn,但这仍然给了我SignInStatus失败的机会。
ApplicationUser user = await userManager.FindByEmailAsync(UxUsername.Text);
var signInResult = _signInManager.CheckPasswordSignInAsync(user, ,User.Password, false);