【发布时间】:2021-04-25 21:38:03
【问题描述】:
我尝试在我的 ASP.NET Core Web 应用程序中实现登录,它使用来自 SQL 数据库的数据来验证登录。 我创建了一个服务类,它应该从数据库中获取用户名和密码,然后我试图将它们与登录信息进行比较。 但是,当我尝试对其进行测试时,我不断收到以下异常:
ArgumentException:初始化字符串的格式不符合从索引 0 开始的规范。
我尝试比较值的方法如下所示:
private async Task<ApplicationUser> AuthenticateUser(string username, string password)
{
var loginName = await _loginService.GetUsernameAsync(username);
var loginPassword = await _loginService.GetPasswordAsync(password);
if (username.Equals(loginName.Username))
{
if(password.Equals(loginPassword.Password))
{
return new ApplicationUser()
{
Username = loginName.Username,
Password = loginPassword.Password
//FullName = "Name"
};
}
else
{
return null;
}
}
else
{
return null;
}
}
【问题讨论】:
-
我想看看你的 _loginService.GetPasswordAsync(password);我想知道如何在没有用户名的情况下获取密码。
-
公共异步任务
GetPasswordAsync(string password) { return await _context.Users .FirstOrDefaultAsync(e => e.Password == password); } -
但在现实生活中,大多数用户拥有相同的密码。您还需要使用用户名。
标签: c# asp.net-mvc asp.net-core authentication argumentexception