Моя проблема в том, что когда люди вводят в URL что-то вроде home / DeleteSong? Id = 139, они получают доступ к моим действиям в домашнем контроллере и могут удалять песни и прочее.Я полагаю, что могу использовать атрибут [authorize], но не вошедшие в систему пользователи по-прежнему смогут вводить URL, чтобы использовать мои действия, чего я не хочу, чтобы они происходили.В основном я использую ajax-запросы для связи с сервером, поэтому я должен проверить свои действия на ajax-запрос, и если он разрешен, то это сделать иначе, сделать что-то еще.Я хотел бы настроить свой проект таким образом, чтобы при вводе пользователем любого URL-адреса я просто перенаправлял на домашнюю страницу ... как мне это сделать, и это решило бы мою проблему?
мое действие:
[HttpPost]
public ActionResult DeleteTopTenFav(int id)
{
var song = repository.GetTopTenFav(id);
var points = repository.FindPoints(song.UserName);
foreach (var item in points)
{
item.TopTenFav = null;
}
repository.DeleteTopTenFav(song);
repository.Save();
return RedirectToAction("Index");
}
Функция удаления jjery ajax:
$("#topTenContainer").on("click", ".btnDeleteTopTenFavSong", function () {
var button = $(this);
var songId = $(this).attr('name');
$.ajax({
beforeSend: function () { ShowAjaxLoader(); },
type: 'POST',
url: "/Home/DeleteTopTenFav/",
data: { id: songId },
success: function () { HideAjaxLoader(), ChangeColorShowMsg("green"), ShowSuccessMsgAndReplaceTopTenSong("Song deleted successfully", button) },
error: function () { HideAjaxLoader(), ChangeColorShowMsg("red"), ShowMsg("Song could not be deleted, please try again") }
});
});