Привет, ребята, я пытаюсь сделать мой пароль безопасным для инъекций sql. Я хочу отфильтровать специальные символы, используя что-то вроде preg_replace в php. Любые советы о том, как я могу применить это для ввода в asp.net?Фильтрация специальных символов при входе в mvc asp.net
Вот мой Войти в мой контроллер:
public ActionResult Login(Models.User user)
{
if (ModelState.IsValid)
{
if (isValid(user.UserName, user.Password))
{
FormsAuthentication.SetAuthCookie(db.User.Where(u => u.UserName == user.UserName).FirstOrDefault().UserRole.Name, false);
return RedirectToAction("Clock", "User");
}
else
{
ModelState.AddModelError("", "User Name or Password is incorrect");
}
}
return View(user);
}
Это мой IsValid:
private bool isValid(string UserName, string Password)
{
bool isValid = false;
var user = db.User.Where(u => u.UserName == UserName).FirstOrDefault();
if (user != null)
{
if(Crypto.VerifyHashedPassword(user.Password, Password))
{
isValid = true;
}
}
return isValid;
}
И это мой login.cshtml:
@using (Html.BeginForm())
{
@Html.ValidationSummary(true, "Login Failed. Check your login details.");
<div>
<fieldset>
<legend>Login Form</legend>
<div>@Html.LabelFor(u=>u.UserName)</div>
<div>@Html.TextBoxFor(u => u.UserName)
@Html.ValidationMessageFor(u => u.UserName)
</div>
<div>@Html.LabelFor(u => u.Password)</div>
<div>
@Html.PasswordFor(u => u.Password)
@Html.ValidationMessageFor(u => u.Password)
</div>
<input type="Submit" value="Log In" />
</fieldset>
</div>
}
Похоже, вы дважды вызываете базу данных, чтобы получить этого пользователя. Почему бы не сделать что-то вроде 'IsValid (... out User user)'? –