2012-01-14 211 views
5

我在Asp.Net MVC 3/knockout.js現場工作了用戶在那裏他們可以節省他們的網站信息 下面是一個簡單的版本模型最佳實踐ASP.NET MVC 3

class{ 
string Id 
string Name 
string Url 
string Description 
} 

我想建立一個非常敏感的用戶界面,所以所有加載保存等將通過Ajax完成。

所以情況是,當用戶添加索姆網站,他的名單和點擊保存JSON字符串張貼到Actionmethod中的控制器。

,一切工作正常。

問題是:

如何確保用戶未與ID篡改,實際上是節省了其他的一些網站用戶信息?

編號是當然hiddden的,但任何邪惡的人與一些網絡知識就可以輕易改變的ID。

+0

沒有先前驗證用戶?你不能使用用戶身份? – 2012-01-14 08:30:36

回答

2

你應該使用身份驗證。裝飾將使用Authorize屬性執行更新的操作。這將確保發送AJAX請求的用戶通過身份驗證,並且他不能更改他的用戶名。然後,你將檢查你的數據庫,如果他試圖更新的網站的ID屬於他。您當然會有一張表格,其中將包含用戶和網站之間的映射。

如果用戶篡改站點ID並放置不屬於他的某個站點的某些值,那麼當您執行查詢以驗證給定站點ID是否屬於給定站點時,控制器操作中的您將檢測到它用戶名。他不能篡改他的用戶名,因爲它存儲在一個加密的身份驗證cookie中,除非他使用不同的用戶名登錄,在這種情況下,他已經知道密碼。