Laden...

Benutzer darf sich nur zu bestimmten Zeiten bei Windows anmelden (lokal)

Erstellt von opelig vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.130 Views
O
opelig Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren
Benutzer darf sich nur zu bestimmten Zeiten bei Windows anmelden (lokal)

Hallo myCsharp.de,

wie der Titel schon sagt, suche ich nach ner lösung für jeden Benutzer den es Lokal gibt loginzeiten festzulegen. ich habe bereits eine form mit diversen Textboxen, jeden Wochentag 2 boxes, eine mit Start und eine mit End zeit.

Momentan werden die Daten in eine XML Datei gespeichert. Dies ist aber nicht die gewünschte Lösung!

Ablauf soll in etwa so Laufen:

Benutzer kommt an PC
-> Windows fährt bis Login Screen
-> Benutzer wählt sein Konto, gibt sein PW ein
-> Prüfung ob Aktuelle Zeit innerhalb Loginzeit ist
-> Wenn nicht dann Meldung "Deine Zeit ist noch nicht gekommen!"
-> Wenn doch, Login in Windows.

Ich hab Google befragt, die Forum Sufu genutzt aber leider noch nichts brauchbares gefunden! Am besten wäre eine Lösung bei welcher ich auf die XML Datei verzichten kann. Warum? Die XML könnte jeder Manipulieren.

Mein Gedanke ging schon soweit das ich die Prüfung der Zeit per Windows Dienst vornehme. Hat vielleicht jemand ne Idee, ggf nen Beispielcode schnipsel an dem ich mich Orientieren kann?

Achso, Umgebung ist Visual Studio 2008, geschrieben wird das programm in c#

1.552 Beiträge seit 2010
vor 12 Jahren

Hallo opelig,

Warum das Rad neu erfinden:
Stichwort: Jugendschutz für Vista aufwärts.

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

C
2.121 Beiträge seit 2010
vor 12 Jahren

Die XML könnte jeder Manipulieren.

Alles sonstige auch. Oder auch nicht, wenns außerhalb des Zugriffs vom Benutzer liegt.
Was genau willst du denn gerade wissen?
Ich hab noch nie gehört wie man die Anmeldung steuern kann. Vielleicht könnte man per Dienst die Einstellungen des Benutzers so ändern, dass er sich zu gewissen Zeiten nicht mehr anmelden darf.
Oder gehts dir um die Speicherung der Zeiten?

O
opelig Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren

Ich will das Rad nicht neu erfinden!!!

Die Sache ist die, ich programmiere das ganze derzeit für einen Gemeinnützigen Verein zum Schutze von Kindern und Jugendlichen! Der Verein stellt bsp. Kindergerechte altersgruppenspezifische Suchmaschinen zur verfügung. Jetzt soll das angebot um eine Software erweitert werden welche Lokal auf den heimischen PC´s arbeitet, kostenfrei ist, für Eltern leicht verständlich und vom Verein hergestellt sowie verteilt wird!

Nochmal zur Verdeutlichung, ich habe mir zwei panel angelegt, auf beiden habe ich jeweils 14 Textboxen. also zu jedem Wochentag eine Start und eine End Textbox. Warum 2 panels? auf dem einen liegen die TB für die gesamte PC Zeit udn auf dem anderen die TB für die Internet nutzungszeit.

Ich möchte jetzt das die Daten aus den TB an Windows übergeben werden. Derzeit löse ich das ganze in dem ich die cmd.exe aufrufe und dort die Daten per usenet befehl übergebe.

Jedoch muss ich für jeden Wochentag extra eintragen und Speichern klicken!

Das Thema XML ist abgehakt und wurde aus dem Programm genommen.

Für weitere Hilfen wäre ich euch sehr Dankbar!

16.832 Beiträge seit 2008
vor 12 Jahren

Hallo opelig,

ich weiß nicht, auf welche Antwort Du im speziellen wartest; aber prinzipiell ist jede Datenhaltung unsicher - egal ob XML oder nicht.
In Deinem Fall kannst Du den Inhalt der XML ja verschlüsseln.

Ansonsten bleibt Dir ja noch eine Embedded-Datenbank, oder die Registry... aber mit genug Ahnung kann das jeder umgehen - egal welche Technologie dahinter steckt.

Ich denke der Rest, das Speichern der Werte ansich, den Logout des Users.. das weißt Du bereits..

G
538 Beiträge seit 2008
vor 12 Jahren

Insbesonere ist das "nach dem Anmelden" zu spät, denn Kinder sind erfinderisch und könnten durchaus ALT+F4 drücken (oder den Prozess killen).

Liefert den Eltern leiber eine Anleitung, wie sie das mit Windows-Boardmitteln verwirklichen können - damit ist den Leuten sicherlich mehr geholfen (und es ist deutlich schwieriger zu umgehen)

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

O
opelig Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren

Danke für eure Antworten, wie gesagt das thema XML ist abgehakt! Ich konnte meinen vorgesetzten endlich überzeugen dies nicht mehr zu nutze.

Stattdessen soll ich jetzt, um schnell was fertig zu bekommen das Ganze an cmd.exe übergeben und mit "net user..." die möglichen Zeiten speichern!


private void setTimes()
        {
            string usrn = usr_lb2.SelectedIndex.ToString();
            string argument = "net user" +usrn+" /times:Mo,7-21;Di,7-21;Mi,7-21;Do,7-21;Fr,7-21 ";
            Process.Start("cmd.exe", argument);
            
        }

das habe ich bereits probiert in verschiedenen Variationen, doch bisher öffnet sich lediglich die CMD. Befehle werden nicht übergeben.

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo opelig,

es fehlt ja auch noch das /k oder /c vor den Argumenten für cmd.exe.

Einfach mal cmd.exe /? eingeben.

herbivore

O
opelig Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren

Ohh mein Gott!

Diese Bösen Bösen Lehrzeichen!!! nunja wenn eines Fehlt wird der Befehl falsch zusammengesetzt und schwupps funktioniert es nicht!

Nun geht es Endlich, Juhuu! Danke allen für die Hilfen und Denkanstösse.

Ich mach kein neuen thread auf hab da aber noch ne Frage, Google hat bisher nicht geholfen.

Kann ich auf die gleiche Art und weise per net user die Zeiten steuern zu welchen an den jeweiligen Computern das internet funktioniert?