Есть ли способ передать учетные данные в элемент управления WebBrowser? - PullRequest
0 голосов
/ 28 марта 2019

В настоящее время у меня есть 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 голосов
/ 28 марта 2019

Но я не понял, почему вы должны выполнять олицетворение для запуска формы, из приведенного выше кода вы ничего не делаете, делая олицетворение.

если вы столкнулись с проблемой при запуске приложения в пользовательском профиле, вам будет полезна ссылка ниже:

WTSQueryUserToken, возвращающий FALSE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...