Как я могу запретить пользователю просматривать определенные веб-сайты в элементе управления WebBrowser?
========================================================================================================

У меня есть простой веб-браузер, встроенный в приложение, которое позволяет пользователю осуществлять поиск в Википедии, и я пытаюсь запретить пользователю переходить на другие сайты за пределами Википедии (например, путем нажатия на внешнюю ссылку, ссылки). Прямо сейчас я использую этот простой код:

Этот код работает, за исключением того, что страница уже загружена при ее запуске. Если я вставлю этот код в`_Navigating` событие, чтобы попытаться превентивно остановить пользователяbefore страница загружена, происходит сбой, поскольку элемент управления веб-браузера не обновляет`Url` свойство, пока после загрузки страницы.

Причина, по которой мне не нравится этот код, состоит в том, что страница уже загружена при ее вызове, поэтому любые ошибки на этой странице (например, ошибки скрипта, которые отображают всплывающее окно) отображаются, даже если веб-страница этого не делает.

Я читал источники, в которых говорится, что не следует использовать элемент управления WebBrowser по различным причинам, но в этом случае безопасность не является серьезной проблемой. Мне также не нужно беспокоиться о том, что конечный пользователь что-то делает, так как это приложение является внутренним приложением, которое имеет буквально только одного пользователя, и он не сможет обойти защиту.

Отключение всех других страниц в настройках IE также не является решением, поскольку этот пользователь использует IE для другого серфинга, и сайты внутренней сети этой организации также работают на IE (и эти адреса меняются, поэтому просто разрешить всем им будет трудно предвидеть).

Подписаться на`WebBrowser.Navigating` событие. Проверить`WebBrowserNavigatingEventArgs.Url` собственность и набор`WebBrowserNavigatingEventArgs.Cancel=true` если это не Википедия.



Надеюсь, это поможет[http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigatingcanceleventargs](https://msdn.microsoft.com/en-us/library/system.windows.navigation.navigatingcanceleventargs) 



Я думаю, что это может быть полезно для вас. Использует свойство WebBrowser.Document для поиска ссылок и циклического перемещения по ссылкам и отключения навигации по нужным ссылкам.
[http://programsolution.blogspot.com/2008/01/how-disable-link-navigation-in.html](https://programsolution.blogspot.com/2008/01/how-disable-link-navigation-in.html)