4

我是.net 世界的新手,所以请耐心等待。我需要在控制器的视图中显示用户列表(带有剃刀引擎的 MVC4 应用程序)。

当用户显示在视图中时,客户端可以单击链接并在单独的视图中获取特定的用户信息。我想实现这一点,但想对用户隐藏任何特定的客户端 ID。客户端 ID 将用于服务器端来检索客户端信息。

我可以通过多种方式执行此操作,例如:在链接中我可以放置一个数据 ID,然后在服务器端使用此 ID 从数据库中检索更多信息。我担心的是客户端可以简单地从 HTML 源代码中查看这些 id,并使用此 id 信息键入控制器 url。我也不喜欢隐藏字段。

所以我的问题是实现此类功能的其他不同方法或最佳实践是什么?

4

2 回答 2

4

以您描述的方式使用键在应用程序中导航是相当普遍的。

如果您担心安全性(有人能够将发现或猜测的密钥传递给控制器​​上的操作并看到一些他们不应该看到的信息),那么在从操作返回信息之前验证控制器/操作级别的用户上下文并决定如果您认为不适当,请勿返回安全信息。

我能想象的唯一另一种方法是允许 UI 用一些必要的上下文信息与服务器端对话,这可能是为发送到客户端的每个关键数据生成代理 guid 字段,使用该代理发送回您的服务器端,将 guid 翻译回真正的密钥,然后开始您的业务。(GUID 本身不会像 int 那样合理猜测。)但是,我永远不会做这样的事情......

想想你试图解决的问题,并确保它保证了这种复杂性。

于 2013-01-12T04:05:26.347 回答
0

同意以上所有内容 - 如果您提供用户界面来查看基于 ID 的详细信息,则无法隐藏该 ID - 您必须将其发回。它可能不是实际的 ID(即 GUID),但这无关紧要。您正在向客户端提供一个 ID,任何人都可以使用该 ID 根据 ID 检索详细信息。

问自己一个问题,“我想提供电话簿,但不显示电话号码。我可以这样做吗?”

于 2013-01-12T06:23:20.187 回答