0
使用实体框架我想正确的认证例程,它允许检查密码和用户名,但如何使用LINQ我会修改我的查询,以允许单独检查用户名和密码在脑海我必须使用加密为什么我有这个if语句。使用linq验证用户名和密码?
public LoginStatus validateUser(string username, string userPassword)
{
var _currentUser = _db.users.FirstOrDefault(a => a.username == username);
if (_currentUser != null)
{
if (isEncryptionEnabled == true)
{
string descriptedPassword = encrypt.DecryptRijndael(_currentUser.password, _currentUser.salt.ToString());
if (descriptedPassword == userPassword)
return LoginStatus.ValidUser;
}
else
{
var _unecryptedUser = _db.users.FirstOrDefault(a => a.username == username && a.password == userPassword);
if (_unecryptedUser != null)
return LoginStatus.ValidEncryptedUser;//zero represents sufcessfull login attempts
}
}
else
{
_loginAttempts++;
}
return _loginAttempts;
@Brain电源你会建议那么当你用id表示你的意思是你的名字,那么你会建议我以validuser的形式返回一个bollean值 – rogue39nin 2014-11-08 16:50:36
是的,返回记录。如果没有记录,则不存在用户。如果一个记录,然后检查密码。返回描述问题的枚举(nouser,passwordinvalid等)。 – 2014-11-08 19:07:11
如何通过一个proecdure返回一个enumaration和一个记录类型 – rogue39nin 2014-11-10 16:24:16