我怎样才能更具体地了解已经发生的事情,即如何报告用户名或密码失败而不仅仅是报告失败。
所以我可以返回用户名是正确的但密码不是
////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary> Validates the user. </summary>
///
/// <remarks> Dave, 2/15/2014. </remarks>
///
/// <exception cref="EntityContextException"> Thrown when an Entity Context error condition
/// occurs. </exception>
///
/// <param name="username"> The username. </param>
/// <param name="password"> The password. </param>
///
/// <returns> The NaviHrUsers. </returns>
////////////////////////////////////////////////////////////////////////////////////////////////////
public NaviHrUsers ValidateUser(string username, string password)
{
try
{
NaviHrUsers currentUser = naviEntities.NaviHrUsers.FirstOrDefault(r => r.login == username && r.password == password);
if (currentUser != null)
{
return currentUser;
}
else
{
return null;
}
}
catch (Exception ex)
{
throw new EntityContextException("ValidateUser failed.", ex);
}
}
答案 0 :(得分:2)
让用户知道用户名是正确但密码不正确的安全做法很差。这使攻击者能够再次猜测密码。