在我的应用程序中,用户可以在他们之间转移积分。在我看来,我检查用户是否可以从他的帐户转移积分,如果可以,我会渲染一些允许他这样做的东西。我不想在我的 Controller 中再次检查这一点,所以我需要某种机制,它允许我检查我为其呈现 View 页面的用户是否与向我的 Controller 发送请求的用户相同。
所以基本上,我想检查我的 Controller ,当前登录的用户是否与发送请求的用户相同 - 为此,我认为我需要一些类似于 ViewBag 的东西,但不是来自 Controller 到 View ,而是从 View 到 Controller 。这可能吗?
最佳答案
执行此操作的正确方法不是在用户请求之间传输此类信息。每个请求都应该是无状态的,但你试图嵌入一个状态。这是搬起石头砸自己脚的公平做法。
如果您的操作需要身份验证(您就是您所说的那样),您应该使用标准的经典 ASP 网络方式来执行此操作。这会将标准身份验证 token 嵌入到任何进一步的用户请求中。这样您就可以知道用户是否已通过身份验证。
对于某些需要授权的操作(用户有权执行操作),您必须验证用户是否有权执行此类操作。必须对每个请求执行此操作,并且通常是一个快速操作。无需通过减少安全屏障来优化此处的内容。
如果您使用经典 asp 搜索身份验证和授权,您将获得有关如何进行编码的更细粒度的答案。
我不推荐,但您仍然可以嵌入隐藏信息
<input type="hidden" value="..."/>
关于asp.net-mvc - 将隐藏数据从 View 安全地传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028555/