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

时间:2017-11-19 19:05:01

标签: authentication login authorization dotnetbrowser

我无法确定需要使用DotNetBrowser控件进行身份验证的加载网址。

IE浏览器和Chrome浏览器会显示一个对话框,并询问用户名和密码 但DotNetBrowser显示以下文字:

  

HTTP错误401 - 未经授权:访问被拒绝

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

1 个答案:

答案 0 :(得分:0)

以下文章介绍了如何在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)。