如何使用 DotNetBrowser 用户控件处理授权?

How to handle authorization with DotNetBrowser user control?

我无法弄清楚需要使用 DotNetBrowser 控件进行身份验证的加载 URL。

IE 和 Chrome 浏览器显示一个对话框并要求输入用户名和密码。
但是 DotNetBrowser 显示以下文本:

HTTP Error 401 - Unauthorized: Access is denied

如何让 DotNetBrowser 显示登录对话框?

以下文章介绍了如何在 DotNetBrowser 中处理 HTTP 身份验证:

https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000110052-handling-basic-digest-and-ntlm-authentication

一句话,需要实现并注册一个自定义的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();

可以直接在应用程序代码中显示对话框或处理身份验证。您还可以注册包含即用型身份验证对话框的现有实现(WinFormsDefaultNetworkDelegateWPFDefaultNetworkDelegate)。