如何使用 DotNetBrowser 用户控件处理授权?
How to handle authorization with DotNetBrowser user control?
我无法弄清楚需要使用 DotNetBrowser 控件进行身份验证的加载 URL。
IE 和 Chrome 浏览器显示一个对话框并要求输入用户名和密码。
但是 DotNetBrowser 显示以下文本:
HTTP Error 401 - Unauthorized: Access is denied
如何让 DotNetBrowser 显示登录对话框?
以下文章介绍了如何在 DotNetBrowser 中处理 HTTP 身份验证:
一句话,需要实现并注册一个自定义的NetworkDelegate
接口实现,以便在需要的时候提供用户名和密码。例如:
public class CustomNetworkDelegate : DefaultNetworkDelegate
{
public bool OnAuthRequired(AuthRequiredParams parameters)
{
if (!parameters.IsProxy) {
parameters.Username = "proxy-username";
parameters.Password = "proxy-password";
// Don't cancel authentication
return false;
}
// Cancel authentication
return true;
}
}
然后如下所示注册此实现:
browserView.Browser.Context.NetworkService.NetworkDelegate = new CustomNetworkDelegate();
可以直接在应用程序代码中显示对话框或处理身份验证。您还可以注册包含即用型身份验证对话框的现有实现(WinFormsDefaultNetworkDelegate
或 WPFDefaultNetworkDelegate
)。
我无法弄清楚需要使用 DotNetBrowser 控件进行身份验证的加载 URL。
IE 和 Chrome 浏览器显示一个对话框并要求输入用户名和密码。
但是 DotNetBrowser 显示以下文本:
HTTP Error 401 - Unauthorized: Access is denied
如何让 DotNetBrowser 显示登录对话框?
以下文章介绍了如何在 DotNetBrowser 中处理 HTTP 身份验证:
一句话,需要实现并注册一个自定义的NetworkDelegate
接口实现,以便在需要的时候提供用户名和密码。例如:
public class CustomNetworkDelegate : DefaultNetworkDelegate
{
public bool OnAuthRequired(AuthRequiredParams parameters)
{
if (!parameters.IsProxy) {
parameters.Username = "proxy-username";
parameters.Password = "proxy-password";
// Don't cancel authentication
return false;
}
// Cancel authentication
return true;
}
}
然后如下所示注册此实现:
browserView.Browser.Context.NetworkService.NetworkDelegate = new CustomNetworkDelegate();
可以直接在应用程序代码中显示对话框或处理身份验证。您还可以注册包含即用型身份验证对话框的现有实现(WinFormsDefaultNetworkDelegate
或 WPFDefaultNetworkDelegate
)。