Каким образом можно удостовериться, что пользователь закрыл вэб-страницу?
Необходимо блокировать редактирование ресурса, если он уже кем-то открыт, т.е. если кто-то из пользователей открыл определенную страницу, то другие имеют к ней доступ только для чтения. Каким образом можно отследить, что занявший ресурс пользователь освободил его (закрыл страницу) и он вновь стал свободен для редактирования?
Проект на ASP.NET MVC 5, смотрю в сторону SignalR, но не слишком ли это, может есть способ проще?
Не слишком.
ИМХО единственный надежный способ узнать когда отвалился клиент - поддерживать с ним постоянное websocket соединение.
Установили соединение - залочили ресурс.
Оборвалось - разлочили.
Да, есть решения проще и если бы вы добавили теги клиентских скриптов( javascript, jquery) то получили бы ответ раз так в 10 быстрее. Существуют события onunload и onbeforeunload. Они не слишком кроссбраузерны и кое где могут не работать, но это будет проще чем костылить SignalR.
>события onunload и onbeforeunload
Есть тысячи способов закрыть браузер, так что onunload и onbeforeunload не сработают вообще. А даже если сработают, то ничего на сервер отослать не успеют.