none
Inicio de Sesión automatico RRS feed

  • Pregunta

  • Hola buen día.

    Estoy un poco desesperado, ya tengo tiempo con este problema y no he encontrado solución esta vez lo estoy intentando de esta manera. quiero iniciar sesión de un sistema de forma automática.

    en el Load de mi pagina estoy ejecutando estos métodos.

    protected void SessionIntregra()        {            string url = "http://.../Archivero/loginDA.aspx";   

    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.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted) while (browser.ReadyState != ebBrowserReadyState.Complete) 

    {                       

    System.Windows.Forms.Application.DoEvents();                }                }            });    thread.SetApartmentState(ApartmentState.STA);            thread.Start();            thread.Join();        }        private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)        {            WebBrowser browser = sender as WebBrowser;            HtmlDocument doc = browser.Document;            HtmlElement username = doc.GetElementById("rndPanel$txtUserName");            HtmlElement password = doc.GetElementById("rndPanel$txtPassword");            HtmlElement submit = doc.GetElementById("rndPanel$btnEntrar");            username.SetAttribute("value", "usua");            password.SetAttribute("value", "Contra");            submit.InvokeMember("click");        }

    pero no me inicia sesión alguna, saben que puedo tener mal?

    O alguna idea para hacerlo, lo que sea es bueno por favor


    OmarculloAcosta


    miércoles, 22 de octubre de 2014 23:32

Respuestas

  • no probaste no usas un thread, digo para agregar complejidad ya vas a tener tiempo, primero prueba que puedas interactuar con la pagina que cargas en el webbrowser

    Estoy de acuerdo con El señor Tuttini

    Prueba simple de comunicación y funcionamiento

    Nombre de proyecto : MSDNForumWebBrowserExampleCSharp

    Tipo: WindowsForm

    Agregue una pagina HTML la proyecto para realizar los test

    Pagina test.html

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title>Auto submit test</title>
    </head>
    <body>
        <script type="text/javascript">
            function sendInfo() {
                var user = document.getElementById('user').value;
                var pass = document.getElementById('pass').value;
                alert(user + " : " + pass);
            }
        </script>
        <h1>LogIn</h1>
        <p>User: <input type="text" id="user" /></p>
        <p>Pass: <input type="text" id="pass" /></p>
        <p><input type="button" id="but" value="LogIn" onclick="sendInfo()" /></p>
    </body>
    </html>

    Form code

    Agregue los siguientes controles (un webBrowser, dos TextBox, dos Labels y un Button)

    Agregue el argumento de navegación al webBrouser

     public Form1()
            {
                InitializeComponent();
    
                webBrowser1.Navigate(@"C:\Users\George\Documents\Visual Studio 2013\Projects\MSDNForumWebBrowserExampleCSharp\MSDNForumWebBrowserExampleCSharp\test.html");
    
            }

    Agregue las instrucciones al evento Click del Boton

     private void button1_Click(object sender, EventArgs e)
            {
                webBrowser1.Document.GetElementById("user").SetAttribute("value", txtUser.Text);
                webBrowser1.Document.GetElementById("pass").SetAttribute("value", txtPass.Text);
    
                webBrowser1.Document.GetElementById("but").InvokeMember("click");
            }

    Realizar las pruebas depurando el proyecto

    Saludos usted puede modificar este proyecto a sus necesidades


    G. Poliovei

    jueves, 23 de octubre de 2014 2:53

Todas las respuestas

  • Buenas noches, si gusta podemos hacer unas pruebas de comunicación y funcionamiento antes


    G. Poliovei

    jueves, 23 de octubre de 2014 2:00
  • hola

    pero que es lo que quieres iniciar automatico, que tipo de aplciacion estas desarrollando?

    si tu sitio es web y quiere iniciar session en ese mismo sitio, olvidalo no se puede

    ahora si tienes un desarrollo winform y quieres iniciar session en uno web para poder obtener info de una pagina, eso si se puede realizar y es correcto el camino que estas tomando

    >>pero no me inicia sesión alguna, saben que puedo tener mal?

    no probaste no usas un thread, digo para agregar complejidad ya vas a tener tiempo, primero prueba que puedas interactuar con la pagina que cargas en el webbrowser

    ademas para que usas esto

    while (browser.ReadyState != ebBrowserReadyState.Complete)  

    si ya defines el evento DocumentCompleted  o es uno o es otro no ambos

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 23 de octubre de 2014 2:17
  • no probaste no usas un thread, digo para agregar complejidad ya vas a tener tiempo, primero prueba que puedas interactuar con la pagina que cargas en el webbrowser

    Estoy de acuerdo con El señor Tuttini

    Prueba simple de comunicación y funcionamiento

    Nombre de proyecto : MSDNForumWebBrowserExampleCSharp

    Tipo: WindowsForm

    Agregue una pagina HTML la proyecto para realizar los test

    Pagina test.html

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title>Auto submit test</title>
    </head>
    <body>
        <script type="text/javascript">
            function sendInfo() {
                var user = document.getElementById('user').value;
                var pass = document.getElementById('pass').value;
                alert(user + " : " + pass);
            }
        </script>
        <h1>LogIn</h1>
        <p>User: <input type="text" id="user" /></p>
        <p>Pass: <input type="text" id="pass" /></p>
        <p><input type="button" id="but" value="LogIn" onclick="sendInfo()" /></p>
    </body>
    </html>

    Form code

    Agregue los siguientes controles (un webBrowser, dos TextBox, dos Labels y un Button)

    Agregue el argumento de navegación al webBrouser

     public Form1()
            {
                InitializeComponent();
    
                webBrowser1.Navigate(@"C:\Users\George\Documents\Visual Studio 2013\Projects\MSDNForumWebBrowserExampleCSharp\MSDNForumWebBrowserExampleCSharp\test.html");
    
            }

    Agregue las instrucciones al evento Click del Boton

     private void button1_Click(object sender, EventArgs e)
            {
                webBrowser1.Document.GetElementById("user").SetAttribute("value", txtUser.Text);
                webBrowser1.Document.GetElementById("pass").SetAttribute("value", txtPass.Text);
    
                webBrowser1.Document.GetElementById("but").InvokeMember("click");
            }

    Realizar las pruebas depurando el proyecto

    Saludos usted puede modificar este proyecto a sus necesidades


    G. Poliovei

    jueves, 23 de octubre de 2014 2:53