有没有办法将凭据传递给WebBrowser Control?

时间:2019-03-28 02:29:39

标签: c# winforms

当前,我有一个Winform,需要在WebBrowser Control中打开报表。我正在使用模拟方法来查看不同的用户。但是以某种方式,WebBrowser会弹出一个Windows安全身份验证供我输入我的凭据。当我以有权查看报告的身份输入凭据(不是我的凭据)时,它将仅显示空白页面。甚至没有消息说:

  

授予用户“ Domain \ 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);
        }

    }

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

1 个答案:

答案 0 :(得分:0)

但是我不明白为什么您必须进行模拟才能启动表单,根据以上代码,您没有通过模拟来做任何事情。

如果您在使用用户个人资料启动应用程序时遇到问题,则下面的链接将很有帮助。

WTSQueryUserToken returning FALSE