Я не очень опытен в этом, но если мне нужно сделать что-то подобное, я бы создал новое поле в базе данных таблицы заявок под названием EditingBy и добавил бы значение по умолчанию '0 .
когда пользователь вызывает TicketID = 897, запрос должен выглядеть следующим образом:
SELECT * FROM Tickets WHERE TicketID = 897;
UPDATE Tickets SET EditingBy = @UserID WHERE TicketID = 897;
затем в коде вы видите, что если EditingBy больше 0, вы можете предупредить UserB о том, что UserA (вы знаете UserID) редактирует заявку, как SO, когда кто-то публикует ответ, а вы пишете свой, или когда например, вы получаете новый значок.
при подтверждении заявки на обновление вы можете обновить поле обратно до 0.
и имейте в виду, что пользователь может войти в SomePage.aspx и уйти, ничего не делая, для этого javascript onUnload в теге body, который вызовет асинхронный вызов для обновления EdittingBy обратно до 0, будет быть идеей.
надеюсь, что это дает вам представление о том, как это сделать.
Отредактировано:
вы всегда можете записать EditingBy в файл XML, если вы не можете редактировать саму базу данных, просто сохраните TicketID и UserID, и вместо того, чтобы находить, если он больше 0, просто проверьте, есть ли TicketID в XML.