Kettel
Да если и веб приложение.
Можно формировать вывод полностью AJAx-ом, а загружать пустой документ (только с библиотекой AJAX; о, кстати, ничего выход)
Тогда проверять то же самое при обращении AJAX к серверу за данными, и отдавать только при положительной проверке id.
А запретить именно открытие - смысла нет. Я могу "тупо" запросить тот же url другим приложением.
Хотя запретить можно. Копай MSDN, плюс можно использовать открытие модального диалога: мне помнится, там были ограничения на открытие ссылок и окон.