Autor Beitrag
dan1el
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 07.07.10 08:38 
hallo !!!
ich hab jetzt min 2 stunden gegogglet und bin auch keine antwort darauf gestoßen.
wie kann ich es machen das er guckt ob passwort stimmt und username wenn es richtig ist msg kommt mit login koreckt?


mfg
dan1el


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mi 07.07.2010 um 10:13
Chiller_No.1
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 62
Erhaltene Danke: 6

Win 7, Win XP, Win Vista
C++, C#, HTML
BeitragVerfasst: Mi 07.07.10 08:44 
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
//Login Prüfen
        private void btn_login_Click(object sender, EventArgs e)
        {
            Dictionary<stringstring> userPasswords = new Dictionary<stringstring>();
            string[] lines = File.ReadAllLines("userpwd.txt");
            string usernameInput = textBoxX1.Text;
            string passwordInput = textBoxX2.Text;

            foreach (string line in lines)
            {
                string username = line.Split(';')[0];
                string password = line.Split(';')[1];

                userPasswords.Add(username, password);
            }

            if (userPasswords.ContainsKey(usernameInput))
            {
                if (userPasswords[usernameInput] == passwordInput)
                {
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Falsches Passwort!");
                    textBoxX2.Text = "";
                }
            }
            else
            {
                MessageBox.Show("Benutzername nicht vergeben!");
                textBoxX2.Text = "";
                textBoxX1.Text = "";
            }
        }



Dann bracuhst du noch die Text Datei userpwd.txt! Darin stehen z.b. die Daten Name;Passwort durch das Semicolon weis der Compiler das ein Passwort beginnt ;) Das dürfte dein Problem ersteinmal lösen :P

mfg chiller
dan1el Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 07.07.10 09:05 
Danke schonmal
ich habs jetzt so versucht

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

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

     
            public void button1_Click(System.Object sender, System.EventArgs e)
    {

            webBrowser1.Document.GetElementById("navbar_username").InnerText = textBox1.Text; 
            webBrowser1.Document.GetElementById("navbar_password").InnerText = textBox2.Text;
            webBrowser1.Document.Forms[0].InvokeMember("submit");
      timer1.Enabled = true;
      
    }
    
    public void Form1_Load(System.Object sender, System.EventArgs e)
    {


            webBrowser1.Navigate("Website");
      Application.DoEvents(); 
      
    }
    
    public void WebBrowser1_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
    {

            button1.Enabled = true;
      
    }
    
    public void timer1_Tick(System.Object sender, System.EventArgs e)
    {

            string Quelltext = webBrowser1.DocumentText; 
      if (Quelltext.Contains("Weiterleitung"))
      {
        timer1.Enabled = false;
        MessageBox.Show("Login erfolgreich....");
        
      }
      else
      {
        timer1.Enabled = false;
        MessageBox.Show("Bitte Eingaben überprüfen..."); 
      }
      
    }
    
    public void LinkLabel1_LinkClicked(System.Object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
    {
      System.Diagnostics.Process.Start("Website");
    }
  }
        }



nunja nur er macht es nicht wie ich es will ^^

will ja von forum aus das checken lassen

Moderiert von user profile iconChristian S.: Quote- durch C#-Tags ersetzt
Chiller_No.1
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 62
Erhaltene Danke: 6

Win 7, Win XP, Win Vista
C++, C#, HTML
BeitragVerfasst: Mi 07.07.10 09:14 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
public void button1_Click(System.Object sender, System.EventArgs e)
{

webBrowser1.Document.GetElementById("navbar_username").InnerText = textBox1.Text;
webBrowser1.Document.GetElementById("navbar_password").InnerText = textBox2.Text;
webBrowser1.Document.Forms[0].InvokeMember("submit");
timer1.Enabled = true;

}


Hier prüft er doch nur den ersten eintrag der txt datei oder täusch ich mich da?
Da sollte auf jeden Fall noch eine Schleife hin.. ;)


ausblenden C#-Quelltext
1:
public void timer1_Tick(System.Object sender, System.EventArgs e)					


Öhmm wofür denn einen Timer? :P

ausblenden C#-Quelltext
1:
2:
3:
4:
public void LinkLabel1_LinkClicked(System.Object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("Website");
}

Soll die Seite nicht aufgerufen werden falls der Login erfolgreich war? Falls ja solltest du diesen Quellcode hier hinter setzten:
ausblenden C#-Quelltext
1:
MessageBox.Show("Login erfolgreich....");					


mfg chiller ;)
dan1el Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 07.07.10 09:49 
hmmm ich kriegs nicht hin ^.<
Chiller_No.1
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 62
Erhaltene Danke: 6

Win 7, Win XP, Win Vista
C++, C#, HTML
BeitragVerfasst: Mi 07.07.10 09:55 
Welchen Teil kriegst du jetzt genau nicht hin? :P
dan1el Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 07.07.10 09:59 
Diesen teil mit der schleife
timer hab ich weg gemacht.
Chiller_No.1
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 62
Erhaltene Danke: 6

Win 7, Win XP, Win Vista
C++, C#, HTML
BeitragVerfasst: Mi 07.07.10 10:07 
ausblenden C#-Quelltext
1:
2:
            Dictionary<stringstring> userPasswords = new Dictionary<stringstring>();
            string[] lines = File.ReadAllLines("userpwd.txt");


So hier liest er jede Zeile in der txt Datei un schreibt sie einzeln in den string ein. das sieht dann z.b. so aus
string[0] wäre dann Name1;Passwort1
string[1] wäre dann Name2;Passwort2 undsoweiter...

Um dann NUR den Benuternamen oder NUR das Passwort zu checken ist die Foreach schleife da. Der Benutzername und das Passwort sind dabei durch ein Semicolon getrennt.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
            foreach (string line in lines)
            {
                string username = line.Split(';')[0];
                string password = line.Split(';')[1];
                userPasswords.Add(username, password);
            }

Hat er dies getan schreibt er jeden Benutzernamen und jedes Passwort einzeln in die vorher angelegte dictionary. Auf diese kann ohne Probleme zugegriffen werden da es ja variablen sind.

Was er dann nurnoch machen muss ist die Prüfung ob die Eingabe mit einem Eintrag in der dictionary übereinstimmt!
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
 if (userPasswords.ContainsKey(usernameInput))
            {
                if (userPasswords[usernameInput] == passwordInput)
                {
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Falsches Passwort!");
                    textBoxX2.Text = "";
                }
            }
            else
            {
                MessageBox.Show("Benutzername nicht vergeben!");
                textBoxX2.Text = "";
                textBoxX1.Text = "";
            }
        }


mfg Chiller ;)
dan1el Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 07.07.10 10:18 
hmmmm sry wir haben beide von was anderem geredet.
also ich habe so einer art spiel.
und bevor man das spielen kann soll er nickname + pw checken lassen.
aber das alles aus ein vbulletin forum.

deswegen frag ich ja ^^

und andere user sollen ja das pw nicht wissen!!
Chiller_No.1
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 62
Erhaltene Danke: 6

Win 7, Win XP, Win Vista
C++, C#, HTML
BeitragVerfasst: Mi 07.07.10 10:22 
Hmm.. Ja bin da jetzt auch nich alzu fit ;D Aber die Benutzernamen bzw. Passwörter sollten von einem Server geladen werden oder einer Datenbank die natürlich nicht jeder einlesen kann ;) Aber ich hoffe andere User können dir da auch noch genauer helfen.

mfg chiller

Für diesen Beitrag haben gedankt: dan1el
dan1el Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 11.07.10 23:33 
pUSH SRY IMMER NOCH NIX GEFUNDEN
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 11.07.10 23:51 
Überleg doch einfach mal, was Du ohne Programm machen würdest: Login-Seite aufrufen, Benutzerdaten eingeben, Seite abschicken, gucken ob die "Du bist eingeloggt"-Seite kommt.

Ich würde empfehlen, dass Du mit WebRequest / WebResponse arbeitest. Dann kannst Du die Login-Daten direkt per POST übergeben.

Also, zusammengefasst:
  1. WebRequest auf die Login-Seite erstellen. Dem WebRequest den Benutzernamen und Passwort direkt als POST-Daten mitgeben. (Vorsicht, ich glaube, vBulletin erwartet MD5-Hashes, musst Du mal recherchieren)
  2. Den WebResponse daraufhin prüfen, ob eine Anmelde-Bestätigung vorliegt.

Ich denke, mit den Stichworten solltest Du bei entsprechendem Studium der Doku zumindest einen Ansatz selber hinbekommen. Dann kannste Dich ja nochmal melden :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: dan1el