【发布时间】:2016-10-11 06:53:42
【问题描述】:
我们有一个使用 ASP.NET MVC 构建的带有多用户管理面板的 Web 应用程序。由于多个用户同时访问同一个页面,只有最后一次编辑和保存的用户数据会被更新到数据库中。这会给其他用户带来问题。
- 是否有任何选项可以随时禁止用户同时访问同一页面?如果用户已经在一个页面上工作,系统应该提醒其他试图访问同一页面的用户“其他人正在这个页面上工作。请稍后再试。”
- MVC 框架本身或 .NET 身份验证是否为此问题提供了任何工具?
- 否则,任何合适的逻辑解决方案也可以。
提前谢谢...
【问题讨论】:
-
您可以在 Db 级别进行。如果有人已经在编辑页面或表单,只需使用位列来防止并发编辑。在这种情况下,您可以创建另一个或在同一个表中。更新时只需更新第 1 列,完成后更新 0。
-
@AT-2016,如果第一个用户放弃编辑,则不起作用 - 标志永远不会重置,并且没有其他人可以编辑它:)
-
如果有人访问该页面并且我将位字段更新为 1 并且他没有单击提交按钮就离开了该页面。该页面将无限期地对所有用户不可用。对吗?
-
这是真的@Stephen Muecke。我实际上正在考虑对 stackoverflow.com 的编辑。当有人已经完成编辑时,该编辑被拒绝。它可能相似,但需要第三人修改。