首页 > 解决方案 > 有没有办法将凭据传递给 WebBrowser Control?

问题描述

目前我有一个 winform,我需要在 WebBrowser Control 中打开报告。我正在使用模拟方法来查看不同的用户。但不知何故,WebBrowser 会弹出一个 Windows 安全身份验证让我输入我的凭据。当我作为有权查看报告的人(不是我的凭据)输入凭据时,它只会显示一个空白页。甚至没有一条消息说:

授予用户“域\first.last”的权限不足以执行此操作。(rsAccessDenied)

第一页:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        using (new ImpersonateUser("TestUsername", Environment.UserDomainName, "TestPassword"))
        {
            Form2 reportForm = new Form2();
            reportForm.Text = "Test";
            reportForm.GetReportUrl("http://url/");
            reportForm.ShowDialog();
        }
    }
}

第二页:

    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            label1.Text = Environment.UserName;
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            webBrowser1.Refresh();
        }

        public void GetReportUrl(string repUrl)
        {
            webBrowser1.Url = new Uri(repUrl);
        }

    }

有人可以向我解释为什么会这样吗?我该如何解决这个问题?谢谢你。

标签: c#winforms

解决方案


但是我不明白为什么你必须模拟来启动一个表单,从上面的代码中你没有通过模拟来做任何事情。

如果您在用户配置文件下启动应用程序时遇到问题,那么下面的链接将很有帮助。

WTSQueryUserToken 返回 FALSE


推荐阅读