You are not logged in.

  • Login

Sheldon

Unregistered

1

Wednesday, July 13th 2011, 9:09am

c# SESSION?

Morgen Community,

bin gerade dabei ein kleines Benutzermanagement (c# .net + wpf) zu programmieren. Registration und Login stehen bereits ( könnte dazu ja ein Wiki schreiben wenn ihr wollt).
Nach erfolgreichen Login geht das Hauptfenster auf. In dem Hauptfenster soll natürlich nun der Benutzer angemeldet sein, der sich eingeloggt hat. Bei PHP geht es per
Cookie, GET und SESSION zu übergeben. Ist sowas auch bei C# möglich?

Ich habe an eine Alternative gedacht. Ich hash den Username speicher ihn beim Login in eine Textdatei und rufe die Datei beim Hauptfenster wieder auf.
Nachteil: Es könnte nur ein Benutzer sich am PC anmelden.

Vielleicht könnt ihr mir helfen.
Habe schon bereits nach SESSION + C# gegooglt, aber nichts brauchbares gefunden.

Mit freundlichen Grüßen

Sheldon

2

Thursday, July 14th 2011, 12:48am

Du schreibst "ein ganz normales Programm", das nur auf dem PC des Endnutzers läuft? Wieso muss er sich dafür dann registrieren und einloggen, wenn nur er es nutzt? Was haben Cookies damit zu tun? So ganz verstehe ich das irgendwie nicht ...

Sheldon

Unregistered

3

Thursday, July 14th 2011, 10:16am

Es gibt mehrere Endanwender. Und der Grund warum es ein Login gibt, ist es die Daten nur dem bereit
Zu stellen, der durch ein Login authoriziert wurde.

Wie bei Php musst es doch eine Möglichkeit geben,
den Username an ein neues Fenster zu übergeben. Bei Php gibt es die Möglichkeiten per
URL,Cookie, Session?

Mit freundlichen Grüßen

Sheldon

4

Thursday, July 14th 2011, 2:45pm

Nun, da du dich ja explizit auf Windows festgelegt hast durch C#, ist ja natugemäss sowieso immer irgendwer als irgendwer angemeldet; soll heissen, Windows hat a priori schon eine Benutzerverwaltung die du schlicht zu nutzen brauchst. Oder ?
Ich verstehe das Problem nicht ganz.

Ich vermute, mit Verlaub, ein ganz andereres Anfängerproblem - und darauf würde die Antwort Assoziation lauten :) Bin gespannt.

5

Thursday, July 14th 2011, 5:16pm

Wie die anderen schon gesagt haben macht es keinen sinn SESSIONS wie sie vl von PHP bekannt sind zu nutzen.

Wie wärs wenn du einfach ne Variable auf true oder false setzt bzw. auf den Wert des aktuell "eingeloggten" benutzers und arbeitest damit.

Mfg Rushh0ur

Sheldon

Unregistered

6

Thursday, July 14th 2011, 8:33pm

Danke schonmal dass ihr mir helfen wollt.
Derzeit bin ich unterwegs und kann schlecht mit dem Handy
meinen Gedankenweg aufschreibe.

Da ich glaube, dass ihr nicht versteht was ich vorhabe.
Oder ich denke vielleicht zu kompliziert? ^^

Ich habe 2 Quelltexte in einem Projekt.

1. Login
2. Hauptfenster

Wenn sich ein "Sheldon" einloggt, soll das Hauptfenster wissen dass es auch ein "Sheldon" ist.
Könnte ja auch ein "Rushhour" sein, da es ja mehrere User gibt.

Die Frage ist also wie übergebe ich die Eingabe bei Korrekten Login ans Hauptfenster.
Beachte es handelt sich um 2 Quelltexte!

Vielleicht konnte ich jetzt euch meinen Gedankengang näher bringen.
Tut mir leid wenn es alles etwas komisch klingt, vielleicht seh ich einfach
den Wald vor lauter Bäumen nicht.

Mit freundlichen Grüssen

Sheldon

Ps: rushhour könntest du es näher erläutern?

7

Thursday, July 14th 2011, 11:40pm

Okay ... Du willst also Daten zwischen zwei Programmen austauschen?

Das geht afaik u.a. über Pipes, Sockets oder, indirekt, über Dateien.

Folgende Fragen habe ich aber noch immer:
- Wieso sind es zwei Programme? Welche Vorteile ergeben sich durch die Aufspaltung?
- Nochmal: Wieso muss man sich registrieren und einloggen? Sofern jede Person ein eigenes Benutzerkonto hat (egal ob unter Linux oder Windows) kannst du sämtliche Dateien, in denen die Daten des Programmes gespeichert werden, in das Benutzerverzeichnis legen. Dann greift das Programm je nach angemeldetem Windowsbenutzer auf die jeweils richtigen Daten zu.

8

Friday, July 15th 2011, 5:00pm

Sind es tatsächlich ZWEI ASSEMBLIES oder nur ZWEI FILES/Klassen innerhalb eines Projekts ?

Für ersteres hat mein Vorredner schön genügend geantwortet; shared memory oder named pipes gäbe es da noch zu erwähnen.

Zweiteres nennt sich Assoziation :)

Also, Assemblies oder Files ?

Sheldon

Unregistered

9

Friday, July 15th 2011, 7:13pm

Es sind zwei Klassen. Also 2 WPF Fenster, innerhalb eines Projektes.

Mit freundlichen Grüßen,

Sheldon

Sheldon

Unregistered

10

Saturday, July 16th 2011, 7:32pm


- Wieso sind es zwei Programme? Welche Vorteile ergeben sich durch die Aufspaltung?

Es dient natürlich der Übersicht. Aber im Endeffekt sind es nur zwei WPF-Fenster.


- Nochmal: Wieso muss man sich registrieren und einloggen? Sofern jede Person ein eigenes Benutzerkonto hat (egal ob unter Linux oder Windows) kannst du sämtliche Dateien, in denen die Daten des Programmes gespeichert werden, in das Benutzerverzeichnis legen. Dann greift das Programm je nach angemeldetem Windowsbenutzer auf die jeweils richtigen Daten zu.

Wie gesagt, dient es um die Daten aus der Datenbank zu schützen. Aufgrund der vielen SQL-Abfragen, die das Programm verursacht. Ich verstehe dein Aspekt. Aber die Daten wären erstens zu
heikel um sie überhaupt unter den Benutzerverzeichnis abzuspeichern. Selbst wenn sie verschlüsselt werden und durch die Windows-Anmeldung vielleicht auch noch geschützt werden.

Ein weiterer Aspekt ist natürlich, sich mit den Quelltexten und dem ganzen Zeug auseinander zu setzen. Lerneffekt. Ich meine es ist nur ein reines Übungsprogramm, dass auf die Idee eines anderen Programms basiert.

Vielen Dank auch noch für die Infos. :), werde mich mal durchlesen.

11

Wednesday, July 20th 2011, 5:08am

Ja, das Ganze irgendwo Speichern lassen und von dort abrufen. Also z.B. von einem Server.
Das ist ja die beste Lösung, da man so mit alles und jedem verbunden ist bzw. alles und jeder sich anmelden kann, sofern du das zur Verfügung stellst.
Von dort dann halt zum Login wieder abrufen und vergleichen lassen.

Wo ist das Problem? Möchtest du ein Beispiel dazu haben, weil du nicht weißt wie du das Syntaxmäßig bewerkstelligen sollst, oder wie?

MfG
Check

Sheldon

Unregistered

12

Wednesday, July 20th 2011, 9:19am

Ja, das ist ja bereits passiert. Die Logindaten sind alle extern auf einem Server gelagert. :P

Mir geht es nur um eine Variableübergabe an ein neues WPF-Fenster :P

Ich hab es nun mit einer .txt-Datei gelöst. Ich schreibe den Username einfach in die Textdatei. Ruf sie mit dem neuen WPF-Fenster auf
und arbeite damit. :) Das war für mich die einfachste Lösung, bei meinem Wissensstand.

Trotzdem Danke

Mit freundlichen Grüßen

Sheldon

13

Monday, July 25th 2011, 8:10pm

Ich weiß nicht wie das in WPF aussieht aber in C# war das doch so:

Beispiel von mir:
der konstruktor des zuöffnenden fensters

C# Quellcode

1
2
3
4
5
6
7
public task taskForm = null; // diese Variable nimmt die Gesammte Form auf aus der sie geöffnet wird
    	public login(task f)
    	{
        	InitializeComponent();
        	this.taskForm = f;
        	taskForm.log = true;
    	}


und zum starten:

C# Quellcode

1
2
login loginWindow = new login(this);
loginWindow.Show();


so könntest du auch ne variable an das nächste fenster übergeben.

z.b ein Array mit allen Benutzen die eingeloggt sind. Bei der Text datei lösung von dir Frage ich mich dann immer was der Benutzer macht wenn der die txt mal aus jucks startet und den inhalt löscht? Absutz vom programm oder plötzlich admin rechte und zugriff auf alle daten?

Vielleicht konnte dir das etwas Helfen.

(sorry dafür wie doof das geschrieben ist Oo)

Sheldon

Unregistered

14

Monday, July 25th 2011, 9:35pm

Vielen Dank. Ja klar, die Methode mit der Textdatei ist jetzt nicht sicherste, aber vielleicht eine Art, die zu meinem derzeitigen
Wissenstand passt. :-D

Aber du bringst mich vielleicht schon in die richtige Richtung. Ich hab mich noch nie mit "task" beschäftigt. Ich lese mich mal durch.
Ich versteh, wie das Fenster geöffnet wird usw. Aber die Login Methode versteh ich nicht. :) Aber wie gesagt, ich lese mich erstmal
in der Bibliothek durch.

Mit freundlichen Grüßen

Sheldon

15

Tuesday, July 26th 2011, 9:20am

oh das mit der Task ist nix spezielles, habe so mein Hauptform im Programm genannt. ^^

(Habe gerade gegooglet, da gibts ja wirklich was mit Task() Oo. Sorry wusste ich nicht.)
Ich versteh, wie das Fenster geöffnet wird usw. Aber die Login Methode versteh ich nicht. Aber wie gesagt, ich lese mich erstmal
in der Bibliothek durch.
Was genau verstehst du denn nicht, vielleicht kann ich das ja nochmal etwas einfacher erklären?

Similar threads

Social bookmarks