Я пытаюсь аутентифицировать Admin Admin в моем AdminController, вот что я сделал до сих пор:
[HttpPost]
public ActionResult AdminLogin(Admin admin)
{
Admin newAdmin = admin;
if (ModelState.IsValid)
{
Admin validAdmin = _iadmin.AuthenticateAdmin(admin);
if(newAdmin.AdminName == validAdmin.AdminName)
{
ViewBag.message = "Valid";
}
}
return View();
}
public Admin AuthenticateAdmin(Admin admin)
{
int count = 0;
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(query, conn))
{
conn.Open();
command.Parameters.AddWithValue("AdminName", admin.AdminName);
command.Parameters.AddWithValue("AdminPassword", admin.AdminPassword);
SqlDataReader reader;
reader = command.ExecuteReader();
while (reader.Read())
{
count++;
}
reader.Close();
}
}
if (count==0)
{
admin.AdminName = "";
admin.AdminPassword = "";
}
return admin;
}
Проблема заключается в следующем: когда AuthenticateAdmin(admin)
выполняется, validAdmin
и newAdmin
иметь сохраненные значения. Насколько я понимаю, newAdmin
должны иметь начальные параметры, передаваемые администратором, а когда AuthenticateAdmin
запускается, validAdmin
должны иметь новые значения, установленные в методе authenticate.
Почему этот автомат c передается по ссылке?
Я смотрел на кого-то, кто задавал тот же вопрос раньше, но мне не очень помогало.