Как запретить пользователям посещать метод удаленных действий напрямую? - PullRequest
0 голосов
/ 21 декабря 2010

Сценарий:

Нажатие на гиперссылку удаления на одном продукте из списка продуктов вызовет /Product/Delete метод действия HttpGet. Затем пользователь нажимает кнопку подтверждения, чтобы вызвать /Product/Delete метод действия HttpPost, который, в свою очередь, перенаправляет пользователя на /Product/Deleted метод действия HttpGet.

Я хочу запретить пользователям пропускать /Product/Delete и напрямую вызывать /Product/Deleted.

1 Ответ

4 голосов
/ 21 декабря 2010

Перед перенаправлением вставьте что-нибудь в TempData.Затем в действии Deleted проверьте, присутствует ли это что-то в TempData.

[HttpPost]
public ActionResult Delete()
{
    // TODO: Delete
    TempData["deleted"] = true;
    return RedirectToAction("deleted");
}

public ActionResult Deleted()
{
    if(TempData["deleted"] == null)
    {
        throw new HttpException(404, "not found");
    }
    return View();
}

. Вы должны знать, что за это нужно платить.Если пользователь нажимает F5 при просмотре действия /product/deleted, он получает 404. Поэтому в основном вы пытаетесь сделать плохой дизайн, и я бы порекомендовал вам его избегать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...