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

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

this.textBoxAddress.Text = this.webBrowser.Url.ToString();
if (this.webBrowser.Url.Host != "en.wikipedia.org")
{
    this.webBrowser.Visible = false;
    this.labelErrorMessage.Visible = true;
}
else
{
    this.webBrowser.Visible = true;
    this.labelErrorMessage.Visible = false;
}

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

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

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

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

Ответы на вопрос(3)

Ваш ответ на вопрос