gpt4 book ai didi

c# - 如何防止用户浏览 Web 浏览器控件中的某些网站?

转载 作者:行者123 更新时间:2023-11-30 13:48:51 25 4
gpt4 key购买 nike

我在应用程序中嵌入了一个简单的网络浏览器,允许用户搜索维基百科,我试图阻止用户浏览到维基百科之外的其他网站(例如,通过单击外部链接引用)。现在,我正在使用这个简单的代码:

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 事件以尝试在加载页面之前 抢先停止用户,它会失败,因为 Web 浏览器控件不会更新 Url 属性,直到页面加载完毕。

我不喜欢这段代码的原因是页面在调用时已经加载,所以页面中的任何错误(例如脚本错误,显示弹出窗口)都会显示,即使网页没有显示。

出于各种原因,我读过一些资料表明不要使用 WebBrowser 控件,但在这种情况下,安全性不是主要问题。我也不需要担心最终用户做某事,因为这个应用程序是一个内部应用程序,实际上只有一个用户,他不会绕过安全措施。

禁用 IE 设置中的所有其他页面也不是解决方案,因为该用户使用 IE 进行其他冲浪,并且该组织的内部网站也在 IE 上运行(并且这些地址发生变化,因此简单地允许所有这些页面将很难预料)。

最佳答案

订阅 WebBrowser.Navigating 事件。检查 WebBrowserNavigatingEventArgs.Url 属性并设置 WebBrowserNavigatingEventArgs.Cancel=true 如果不是维基百科。

关于c# - 如何防止用户浏览 Web 浏览器控件中的某些网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11139459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com