Karthic Raja Ответов: 1

использование управления веб-браузером для реализации автоматического входа в живой сайт. он работает только в internet explorer,но не работает в firefox и chrome, как решить эту ошибку


в asp.net c# использует управление веб-браузером для реализации автоматического входа в живой сайт. он работает только в internet explorer, но не работает в Firefox и chrome, как решить эту ошибку ..

а также я попытался запустить в прямом эфире свою показанную ошибку HTTP 503 и сервис недоступен.



using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Threading;
using System.Windows.Forms;
using System.Drawing;
using System.IO;

public partial class _Default : System.Web.UI.Page 
{
    static string password = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            txtUsername.Text = "********";
            password = "********";
            for (int i = 0; i < password.Length; i++)
            {
                txtPassword.Text = txtPassword.Text + "*";
            }


            Thread thread = new Thread(delegate()
            {

                using (WebBrowser browser = new WebBrowser())
                {
                    browser.ScrollBarsEnabled = false;
                    browser.AllowNavigation = true;
                    browser.Navigate("URL");
                    browser.Width = 1024;
                    browser.Height = 768;
                    browser.ScriptErrorsSuppressed = true;
                    browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted2);
                    while (browser.ReadyState != WebBrowserReadyState.Complete)
                    {
                        System.Windows.Forms.Application.DoEvents();
                    }
                }
            });
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();
            capture();
            Response.Redirect("URL");

        }

    }
    void capture()
    {

        if (password == "********" && txtUsername.Text == "********")
        {

            Thread thread = new Thread(delegate()
            {
                using (WebBrowser browser = new WebBrowser())
                {
                    browser.ScrollBarsEnabled = false;
                    browser.AllowNavigation = true;
                    browser.Navigate("URL");
                    browser.Width = 1024;
                    browser.ScriptErrorsSuppressed = true;
                    browser.Height = 768;
                    browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted);
                    while (browser.ReadyState != WebBrowserReadyState.Complete)
                    {
                        System.Windows.Forms.Application.DoEvents();
                    }
                }
            });
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();
        }
        else
        {
            Response.Write("<script>alert('Invalid Username And Password!!!')</script>");
        }
    }


    private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser browser1 = sender as WebBrowser;

        HtmlDocument doc = browser1.Document;

        string user = txtUsername.Text.Trim();
        string pass = password;

        doc.GetElementById("username").SetAttribute("value", user);
        doc.GetElementById("passwd").SetAttribute("value", pass);

        //get Button on page and fire its click event
        doc.GetElementById(".save").InvokeMember("Click");

        Thread thread = new Thread(delegate()
        {
            using (WebBrowser browser = new WebBrowser())
            {
                browser.ScrollBarsEnabled = false;
                browser.AllowNavigation = true;
                browser.Navigate("Navigate URL");
                browser.Width = 1024;
                browser.Height = 768;

                browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted1);
                while (browser.ReadyState != WebBrowserReadyState.Complete)
                {
                    System.Windows.Forms.Application.DoEvents();
                }
            }
        });
        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();
        thread.Join();
        //  


    }
    private void DocumentCompleted1(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser browser = sender as WebBrowser;
        using (Bitmap bitmap = new Bitmap(browser.Width, browser.Height))
        {
            browser.DrawToBitmap(bitmap, new Rectangle(0, 0, browser.Width, browser.Height));
            using (MemoryStream stream = new MemoryStream())
            {
                bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                byte[] bytes = stream.ToArray();
                imgScreenShot.Visible = true;
                imgScreenShot.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(bytes);
            }
        }
        // Response.Redirect("URL");

    }

    private void DocumentCompleted2(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser browser = sender as WebBrowser;
        using (Bitmap bitmap = new Bitmap(browser.Width, browser.Height))
        {
            browser.DrawToBitmap(bitmap, new Rectangle(0, 0, browser.Width, browser.Height));
            using (MemoryStream stream = new MemoryStream())
            {
                bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                byte[] bytes = stream.ToArray();
                imgScreenShot.Visible = true;
                imgScreenShot.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(bytes);
            }
        }
    }
}

ZurdoDev

Что значит он не работает в Chrome или FireFox? Вы сказали, что используете элемент управления WebBrowser, а не настоящий браузер.

Richard Deeming

Это никогда не сработает. Вы входите в систему сервер, который устанавливает файлы cookie аутентификации в Internet Explorer на сервер, а затем перенаправление клиент на защищенную страницу, когда клиент не был аутентифицирован.

Может быть появиться работать, когда вы запускаете сайт из Visual Studio, но это только потому, что в данном конкретном случае клиент и сервер-это один и тот же компьютер.

Karthic Raja

я подписываю аккаунт gmail в обычном режиме asp.net в это время я хочу автоматически войти в chrome side (Моя учетная запись gmail).

я хочу реализовать автоматический вход в живой сайт с помощью asp.net c# и его необходимость в работе всех браузеров. как это решить ...пожалуйста, ответьте....

Richard Deeming

Вы входите в систему пользователей твой Учетная запись GMail, или их Аккаунт GMail?

Если это ваша учетная запись, то вы можете просто дать им имя пользователя и пароль. В любом случае вы даете пользователю полный контроль над вашей учетной записью; они могут легко изменить учетные данные для входа на все, что захотят.

Если это их учетная запись, то это будет фишинговая страница, используемая для кражи учетных данных других людей. Это незаконно, и вы не найдете здесь никакой помощи.

Sergey Alexandrovich Kryukov

Что заставляет вас думать, что использование этого контроля может помочь?
—СА

Karthic Raja

я подписываю аккаунт gmail в обычном режиме asp.net в это время я хочу автоматически войти в chrome side (Моя учетная запись gmail).

я хочу реализовать автоматический вход в живой сайт с помощью asp.net c# и его необходимость в работе всех браузеров. как это решить ...пожалуйста, ответьте....

1 Ответов

Рейтинг:
2

Member 11871219

Его невозможно разрешить в chrome или firefox, потому что он безопасен.
нет разрешения на автоматический вход с помощью c#