我是初学程序员,我需要一些信息。如何通过浏览器栏阻止编辑参数?看看代码。在我的控制器中,我有下面的方法。
[HttpGet]
public ActionResult WypelnijFormularz(int doctor, string date, string hour, string minute)
{
RegisterVisitModel model = new RegisterVisitModel();
model.doctor = DoctorRepository.GetDoctorByID(doctor);
model.dateVisit = DateTime.ParseExact(date+" "+hour+":"+minute+":00", "yyyy-MM-dd HH:mm:ss", null);
return View(model);
}
从这里发出参数:
button.url = "/Dentist/WypelnijFormularz?doctor=" + doctor + "&date=" + button.start.Date.ToString("d") + "&hour=" + button.start.ToString("HH") + "&minute=" + button.start.ToString("mm");
上面的代码是具有Fullcalendar的众多属性之一。是的,我使用Fullcalendar插件来显示本周的活动!(它是一个日历小时!)。选择免费术语后,我们将针对上述方法。问题的核心是我们可以在浏览器中更改日期,然后我们可以预订现有的约会。我怎么能阻止这个?
我找到了我们无法做到的网站 - > https://www.osoz.pl/osoz-www/lekarze/potwierdzenieRejestracji?ntrz=4295&nswd=901870&data=2015-01-23&czasOd=10:50&czasDo=11:00&platnik=0&charakterPracy=OSOZ&isGWR=false&kre8=0010&nrjd=1&s=2503261200 当您更改日期时,我们知道此页面不存在。我怎么能得到这个。
问候!
答案 0 :(得分:0)
您无法指示浏览器或可用于发送请求以验证网址的任何其他工具。
您需要做的是验证自己进入操作方法的所有输入。您可以使用data annotation attributes验证传入请求或自行执行验证。
您绝不应该信任用户输入的内容。
答案 1 :(得分:0)
正如其他人所推荐的那样,你应该这样做:
[HttpGet]
public ActionResult WypelnijFormularz(int doctor, string date, string hour, string minute)
{
RegisterVisitModel model = new RegisterVisitModel();
model.doctor = DoctorRepository.GetDoctorByID(doctor);
model.dateVisit = DateTime.ParseExact(date+" "+hour+":"+minute+":00", "yyyy-MM-dd HH:mm:ss", null);
//Check if an appointment exists on that day
if(DoctorRepository.IsAppointmentExist(model.dateVisit))
{
//Redirect to error page
return RedirectToAction("Index", "Error");
}
return View(model);
}