私の問題は、人々がhome/DeleteSong?id = 139のようなものをURLに入力すると、彼らは家のコントローラーで自分の行動に到達していて、曲やものを削除できることです。私は[authorize]属性を使うことができると信じていますが、ログインしていないユーザは、私の行動を使用するためにURLを入力することはできません。私は主にサーバーと通信するためにAjaxリクエストを使用するので、Ajaxリクエストのために自分のアクションをチェックする必要があります。ユーザーが任意のURLを入力するとホームページにリダイレクトされるようにプロジェクトを設定したいのですが、どうすればこの問題は解決しますか?どのようにURLのクエリからasp.net mvc 3サイトを保護するには?
自分の行動:
[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");
}
私のjqueryの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") }
});
});
いいえ、あなたの問題は解決しません。 – dotjoe