2012-01-14 125 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中,除非他使用不同的用户名登录,在这种情况下,他已经知道密码。