我目前正在使用CRUD身份。但我可以破解這個。我正在努力,使它只能在登錄後才能刪除。防止用戶在未登錄的情況下不刪除
我已經嘗試加入if (User.Identity.IsAuthenticated)
但是,這不起作用,它會將我發送到登錄頁面後,您已進入刪除頁面。這是我的控制器:
public ActionResult _RemoveItems()
{
var Items = db.CreatePosts.ToList();
return PartialView(Items);
}
[HttpPost]
public ActionResult _RemoveItem(int Id)
{
if (HttpContext.User.Identity.IsAuthenticated)
{
CreatePost CreatePost = db.CreatePosts.Find(Id);
if (CreatePost != null)
{
db.CreatePosts.Remove(CreatePost);
db.SaveChanges();
}
}
return RedirectToAction("Index", "Manage");
}
這是我刪除
@Html.ActionLink("Slet", "_RemoveItem", "Home", new { @id = item.Id }, new { @class = "btn btn-danger" })
我在做什麼錯了,因爲我不能讓它所以你需要先登錄即可進入頁面之前_RemoveItem
如果鏈接存在於* view *中,那麼它會給人一個印象,即如果沒有登錄,允許刪除選項。從你發佈的內容看,它看起來並不像他們有能力刪除,但它會將它們重定向回索引頁面,而不會解釋發生了什麼。我不認爲你可以阻止用戶進入刪除控制器(沒有構建過濾器),但是你可以阻止他們執行操作的代碼內容,如果他們沒有登錄,但是Identity.IsUserAuthenticated應該做的伎倆。 –
問題是,它不是爲什麼?我不知道。我已經精確地把它放錯了,但它應該放在哪裏,我不知道。 –
正如一邊,您的[HttpGet]方法名稱是_RemoveItem而您的[HttpPost]方法名稱是_RemoveItems。 – nocturns2