用户身份验证是否会阻止并发问题?

时间:2013-06-05 20:24:10

标签: c# linq-to-sql concurrency

我正在使用LINQ to SQL来读取/写入服务器上的数据库。现在只有db-entry的创建者可以更改相关信息。

是否可以保证不会出现并发问题?我的意思是,不可能同时改变一个条目形成两个不同的位置。或者是否还会出现并发问题?

提前致谢

3 个答案:

答案 0 :(得分:5)

没有;这根本没用。

单个用户仍然可以从不同的标签页或浏览器或计算机发送多个并发请求。

答案 1 :(得分:0)

排除使用多个窗口的“恶意”用户的明显不太可能的情况,我想知道是否会发生奇怪的情况:

  • 用户发送第一个请求,该请求由Web服务器在线程上执行,但无论出于何种原因,此线程都被抢占。
  • 然后,同一个用户发出另一个与第一个请求冲突的请求,但是此请求是在未被抢占的线程上执行的,并直接将新值写入数据库。
  • 然后唤醒第一个线程并结束其写入旧值的工作

所以当你有任何疑问时会提出一些保护措施,因为我们从不太小心,特别是在编程时;)

答案 2 :(得分:0)

在一个理想的世界中是的。但有几件事需要考虑。

同一个用户可以从多个位置提交更改吗?

如果TCP / IP连接断开并重新建立,重叠/无序请求会成为问题吗?

是否有可能需要主持人或管理员访问用户数据?