c# - MVC ASP.Net 上的 session 锁定 - 防止用户同时访问同一资源

标签 c# sql asp.net asp.net-mvc session

我有一个不确定的查询。 我正在为客户开发 MVC Web 应用程序,该应用程序管理存储在 SQL 中的 XML 文档中的内容。

当用户访问 XML 文档时,它会被复制到用户进行任何更改的 session 中,然后在触发保存更改事件时正确提交回数据库。

客户已请求锁定,以防止其他用户访问/修改 XML 内容(如果其他用户已经在访问它)。

首先,我什至不确定如何实现这样的功能,或者您将如何决定 session 是否处于事件状态,或者是否应该应用保存超时(但最终会惹恼需要很长时间进行更改的用户) ,但更重要的是,我个人认为考虑到我们正在处理的极端期限,他们拥有它的理由不足以保证它。

他们的理由是他们当前的解决方案“做到了”,新的也应该如此。 然而,他们当前的解决方案基于一个完全不同的平台,我认为客户不理解他们的要求 - 因为它最终可能会成为更多的障碍。

其他人对此有何看法,有没有人处理过类似的情况?

最佳答案

也许只是用位域锁定记录?

向数据库记录添加一个 bool 标志,例如RecordInUse

当用户查看 xml 内容时,设置标志。当用户结束对记录的访问时,取消设置标志。

每当有人想要查看 xml 时,请在允许访问之前检查是否设置了标志。

您只需要弄清楚当人们关闭浏览器时如何处理这种情况。

关于c# - MVC ASP.Net 上的 session 锁定 - 防止用户同时访问同一资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35865366/

相关文章:

C#检测进程退出

php - 在sql查询中创建计数器

asp.net - SignalR 和加入组

c# - 表示为细长三角形的线在 3D 中不可见?

c# - 禁用搜索 GAC

sql - SQL 表中的版本控制 - 如何处理?

sql - 具有子查询奇怪行为的 DELETE 语句

c# - 在页面生命周期中的Render()之前发生的错误中重写YSOD,然后将异常内容作为该控件的HTML注释写入

c# - 从数据库和缓存中获取 AppSettings

c# - 如何在 C# 中使用表名从数据库中获取 DataTable 对象?