2009-09-24 49 views
0

我有我的數據庫中由不同用戶創建的帖子的集合。ASP.NET MVC檢查用戶是否可以執行操作

  • 每個用戶都可以創建帖子並只編輯他們的帖子。
  • 要編輯他們的帖子,用戶導航到「Posts/EditPost?PostID = x」頁面,其中x是帖子ID。

  • 「Posts」控制器具有'[Authorize]'屬性,操作的GET部分檢查是否由用戶創建帖子。

如果用戶的確確實發佈了帖子,它將呈現視圖。在視圖中有一個帶有「PostID」的隱藏字段。

當用戶提交表單時,如果PostID匹配當前登錄用戶創建的帖子,則操作的POST部分會重新檢查。

有沒有更好的方法來實現這一點,而無需再次檢查用戶是否有權編輯帖子,或者這是最好的方式?

回答

1

這對我來說聽起來很不錯。如果您不想檢查用戶兩次,我可以建議的唯一方法就是使用您使用視圖呈現的anti-forgery token之類的內容。由於您只能看到是否允許您編輯帖子,在這一點上,我認爲您所需要做的就是檢查POST是否來自您的網站。

0

我有同樣的問題,但我解決了它通過刪除在視圖編輯的能力。一旦編輯的能力被刪除,我可以有點假設,如果編輯了,那麼用戶有權利。

我這樣做是因爲其他人,版主也必須能夠編輯帖子。

很明顯,這可能無法在互聯網上運行,因爲您可以避開安全問題,但在公司內部網上它是一種享受。

我仍然認爲我應該檢查業務層的用戶權限,但他們需要給我更多的錢和時間。 :)

相關問題