Entwickler-Ecke

Sonstiges (.NET) - Bin neu und versuche mich in C# - Login erstellen


fronti - Fr 14.03.08 16:04
Titel: Bin neu und versuche mich in C# - Login erstellen
Hallo liebe Forum Mitglieder,

ich bin neu hier und möchte mich gerne in C# versuchen.

Was ich gerne machen möchte wäre ein kleines Tool mit Benutzer Anmeldung. Habt ihr villeicht hilfreiche links zum nachlesen für mich ? Habe mir Visual Studio 2008 installiert

Lg Fronti


Christian S. - Fr 14.03.08 16:25

Hallo und :welcome:!

Vorweg: Bitte ändere den Titel Deines Threads, indem Du die Editier-Funktion benutzt. Er sollte so aussehen, dass man aus dem Titel zumindest schonmal eine Ahnung bekommt, worum es in den Thread überhaupt geht. Danke! :-)

Ich denke, damit man Dir helfen kann, musst Du ein bisschen spezifischer werden. Wie soll denn die Benutzeranmeldung ausshen? Wo liegen die Daten, welche Benutzer es gibt und welche Passwörter sie haben.

Wenn Du gerade mit C# anfängst, könnte das vielleicht auch als Einstiegs-Projekt ein bisschen schwer sein. Empfehlen kann ich Dir, zu anfangs mal mit den Grundlagen anzufangen. Ist vielleicht erstmal etwas trocken, aber Du sparst Dir hinterher sehr viel Ärger. Gute Art, an Grundlagen zu kommen: Suche bei Google OPENBOOK VISUAL C#. Geht zwar noch nicht auf die Neuerungen in C# 3.0 ein, aber für den Anfang reicht es dicke.

Grüße
Christian


fronti - Fr 14.03.08 16:39

Zitat:
" Ich denke, damit man Dir helfen kann, musst Du ein bisschen spezifischer werden. "

Ok,..Also das ganze soll eine Registrierkasse werden für meine Schwiegermutter für ihr Geschäft, das sie per PC kassieren kann. Quasi ganz was einfaches für den Anfang, sollte aber auch eine Rechnung drucken können nach dem Kassieren mit allem was dazu gehört eir Mwst. usw.

Ich weis, wenn man googelt findet mann wahrscheinlich haufenweise fertige tools das ich aber nicht will, da es für mich zum lernen sein soll und ich zeit habe.

Quasi soll man mit einem doppel click das prog öffnen können und sie soll sich dann anmelden

Lg Fronti


derDachs - Mi 09.04.08 14:56
Titel: Sowas sollte man nicht so salopp machen...
Hi,

Ich denke der Rat mit dem OpenBook ist auf jedenfall für dich eine Empfehlung.
Desweiteren solltest du dich schon etwas mit Verschlüsselung auseinander setzen.
Ich empfehle dir hierbei ein Asymmetrisches Verfahren ( Das Passwort ist nicht rückführbar mit selbiger Methode)
Quasi sollte das so aussehen:

User gibt erstesmal Passwort, dies ist dann das Unverschlüsselte PassU.
Dieses wird funktion f übergeben welche daraus PassV (Passwortverschlüsselt) errechnet und abgespeichert für diesen User
Wenn der User sein Passwort zum einlogen angibt, wird es wiederrum an f übergeben und das errechnete PassV mit dem gespeicherten PassV verglichen.
fertig...

Hierbei ist bestenfalls: System.Security.Cryptography zu verwenden


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:
70:
71:
72:
73:
74:
75:
76:
77:
using System;
using System.Security.Cryptography;
using System.Text;

class Example
{
    // Hash an input string and return the hash as
    // a 32 character hexadecimal string.
    static string getMd5Hash(string input)
    {
        // Create a new instance of the MD5CryptoServiceProvider object.
        MD5 md5Hasher = MD5.Create();

        // Convert the input string to a byte array and compute the hash.
        byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));

        // Create a new Stringbuilder to collect the bytes
        // and create a string.
        StringBuilder sBuilder = new StringBuilder();

        // Loop through each byte of the hashed data 
        // and format each one as a hexadecimal string.
        for (int i = 0; i < data.Length; i++)
        {
            sBuilder.Append(data[i].ToString("x2"));
        }

        // Return the hexadecimal string.
        return sBuilder.ToString();
    }

    // Verify a hash against a string.
    static bool verifyMd5Hash(string input, string hash)
    {
        // Hash the input.
        string hashOfInput = getMd5Hash(input);

        // Create a StringComparer an comare the hashes.
        StringComparer comparer = StringComparer.OrdinalIgnoreCase;

        if (0 == comparer.Compare(hashOfInput, hash))
        {
            return true;
        }
        else
        {
            return false;
        }
    }


    static void Main()
    {
        string source = "Hello World!";

        string hash = getMd5Hash(source);

        Console.WriteLine("The MD5 hash of " + source + " is: " + hash + ".");

        Console.WriteLine("Verifying the hash...");

        if (verifyMd5Hash(source, hash))
        {
            Console.WriteLine("The hashes are the same.");
        }
        else
        {
            Console.WriteLine("The hashes are not same.");
        }

    }
}
// This code example produces the following output:
//
// The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.
// Verifying the hash...
// The hashes are the same.

mfG derDachs

Moderiert von user profile iconChristian S.: B- durch C#-Tags ersetzt


Rumtata - Do 10.04.08 15:16

Hi,

user profile iconfronti hat folgendes geschrieben:
Zitat:
Ok,..Also das ganze soll eine Registrierkasse werden für meine Schwiegermutter für ihr Geschäft, das sie per PC kassieren kann.


nur so eine kleine Frage:
Soll die Kasse real eingesetzt werden d.h sollen z.B. Rechnungen damit gedruckt werden, die der Kunde bekommt?
Wenn ja solltest Du Dich darüber informieren, welche gesetzlichen Vorgaben erfüllt sein müssen.
Andernfalls kann es schnell passieren, dass Deine Schwiegermutter Probleme mit dem Finanzamt bekommt, auch wenn das ganze von Dir gut gemeint ist.

Ansonsten würde ich erst einmal das Grundgerüst der Kasse programmieren und wenn Du damit Erfahrung in C#/.NET gesammelt hast, kannst Du das Login-Fenster programmieren. Du kannst ja erstmal das Windows-Login als sichere Anmeldung verwenden...

Viel Erfolg,
Karsten