.net - MVC 4 在前端隐藏客户端 ID 的最佳实践

标签 .net asp.net-mvc-4

我是 .net 世界的新手,所以请耐心等待。我需要在 Controller (带有 Razor 引擎的 MVC4 应用程序)的 View 中显示用户列表。

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

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

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

最佳答案

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

如果您担心安全性(有人能够将发现或猜测的 key 传递给 Controller ​​上的操作并查看一些他们不应该看到的信息)然后在从操作返回信息之前在 Controller /操作级别验证用户上下文并决定如果您认为安全信息不合适,则不要返回安全信息。

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

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

关于.net - MVC 4 在前端隐藏客户端 ID 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14290014/

相关文章:

c# - 将子控件的点击事件传递给父控件

.net - 何时需要使用 GAC 共享程序集?

.net - MultiColumnText 在 iTextSharp v5.3.3 中工作吗?

c# - 元组==混淆

asp.net-mvc-4 - Angular.js 和 ASP.NET MVC 4

java - 'weka.core.WekaPackageManager' 的类型初始值设定项抛出异常 - weka c#

c# - 在本地主机 mvc4 中发布应用程序后,是否使用弹出窗口将数据保存在数据库中?

asp.net-mvc - 在 MVC 中将值从 Controller 传输到共享 View

asp.net-mvc-4 - 如何使用 ServiceStack 保护 Elmah

asp.net-mvc-4 - 添加引用列表中缺少 System.Web.Http.Description