【发布时间】:2012-01-08 07:35:35
【问题描述】:
我的问题是,当人们输入诸如 home/DeleteSong?id=139 之类的 url 时,他们会在家庭控制器中执行我的操作,并且可以删除歌曲和内容。我相信我可以使用 [authorize] 属性,但未登录的用户仍然可以输入 url 来使用我不想发生的操作。我主要使用 ajax 请求与服务器进行通信,所以我应该检查我的操作是否有 ajax 请求,如果它允许它做它的事情,否则做其他事情。我想以这样一种方式设置我的项目,当用户输入任何网址时,我都会重定向到主页。我该怎么做,这能解决我的问题吗?
我的行动:
[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") }
});
});
【问题讨论】:
-
不,这不能解决您的问题。
标签: asp.net-mvc-3 security url