Ho due azioni all'interno mio controller (shoppingCartController)Asp.net mvc Come impedire al browser di chiamare un metodo di azione?
public ActionResult Index()
{
//some stuff here
return View(viewModel);
}
public ActionResult AddToCart(int id)
{
return RedirectToAction("Index");
}
Esiste un modo per evitare che gli utenti di chiamare direttamente l'azione index digitando l'URL nel browser?
Ad esempio: se l'utente accede a shoppingCart/index
essere reindirizzato a Home/Index.
se metto [ChildActionOnly] sul mio metodo index, non verrà chiamato da redirectToAction. funziona solo se ho html.action(). anche controllerContext.ischildAction non riconosce il redirecttoaction come chiamata childaction. – 1AmirJalali
Se vuoi un'azione che funzioni come un'azione regolare (cioè puoi RedirectToAction ad esso) ma puoi reindirizzare da un posto solo, puoi provare a controllare il referer all'interno dell'azione, reindirizzarti a home/index se il referer non è è l'url AddToCart. Ciò non sarebbe infallibile, tuttavia, poiché il referente può essere falsificato. –
stavo per controllare la risposta StatusCode. come dovrei controllare il referere? – 1AmirJalali