2011-05-11 59 views
0

我有以下问题:我有一个视图(编辑一个对象),它有一个ViewModel,并且在ViewModel中故意省略了Id它代表的对象。这样,黑客就不会改变formvalues并将Id发布到服务器本身。我仍然在控制器中使用模型绑定,我当然不包括Id,但是两层安全性比一个更安全。如何用ExtJs发布一个对象的Id到MVC控制器

现在我添加了一个删除按钮到视图。控制器上的函数需要一个Id,我看到其他人从(视图)模型中获取Id,但这需要将其添加到ViewModel,我希望这不是必需的。加载editview的控制器操作的Url知道Id。

我可以在不添加Id的情况下解决此问题吗?

handler: function(btn) {debugger; 
         var conn = new Ext.data.Connection(); 

         conn.request 
         (
          { 
           url: '<%= Url.Action("DeleteHourType") %>', 
           method: 'POST', 
           success: function(resp) { 
            var url = JSON.parse(resp.responseText).redirect; 
            window.location = url; 
           } 
          } 
         ); 
         } 

回答

2

不,您需要将ID存储在客户端的某处。如果您有此担心,您可以随时加密该值。

与其避免在视图中放置Ids,确保场景后面发生的任何操作执行安全检查,以便用户a不能编辑用户b的内容。默默无闻的安全性,通过不向客户发布身份证,从来就没有问题。

相关问题