Zum Inhalt springen

[C#] Starten einer Benutzersession unter Windows Server 2K8


Gateway_man

Empfohlene Beiträge

Hi leute,

weiß einer von euch wie man einer Benutzer Session über code startet.

Das programm bekommt quasi die Windows benutzerdaten während kein Windows user angemeldet ist.

Jetzt soll das Programm den erhaltenen Benutzer anmelden.

Ich hab schonmal gesucht und fand nur "skurile" Registry Lösungen.

Gibts da keine native WinApi Funktion oder möglicherweise sogar eine managed .NET Funktion?

Lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Meinst du Windows Service?

Wenn ja, das ist kein Service Projekt. Und es umzuschreiben ist keine Option, da es schon sehr umfangreich ist. Zumal ist die GUI unabdinglich und soweit ich weiß haben Windows Services keine Oberfläche.

Es zu ändern würde mich zwei Wochen kosten die ich nicht investieren kann und auch nicht möchte.

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wieso brauchst du eine GUI, wenn das Programm ohne Interaktion laufen soll?

Ich habe nicht gesagt, das das Programm ohne Interaktion auskommt. Es soll per direkter Interaktion sowie Remote Steuerbar sein.

Aus diesem Grunde verfügt das Programm über Remote Desktop funktionalitäten.

Nun muss ich jetzt nurnoch das obige Problem lösen.

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Verstehe ich das richtig:

Du startest das Programm als User XYZ.

Dann willst du dich als User ABC auf dem System anmelden und mit dem Programm arbeiten?

Dann geh ich mal genauer drauf ein.

Ich habe eine Anwendung. Diese Anwendung wird immer unter dem selben Benutzer ausgeführt.

Nehmen wir mal an es läuft auf meinem Rechner.

Es kommt hin und wieder vor das ich unterwegs bin und den Rechner aus diesen gründen Sperre.

Nun möchte ich von unterwegs kurz mit der Instanz des Programmes auf meinem Rechner arbeiten.

Aus diesem Grund verfügt das Programm über Rdp Funktionalitäten.

Was ich machen will ist folgendes.

Ich verbinde mich per Client mit meiner Anwendung die auf meinem Rechner läuft.

Diese soll prüfen ob der Rechner gesperrt ist.

Wenn das der Fall ist soll diese den Rechner entsperren bevor die rdp session initialisiert wird.

Ich weigere mich zu glauben das nur ein Service in der Lage ist einen Userlogin zu starten.

Irgendwo in den untiefen der Windows Api gibt es sicherlich eine Funktion die ich dazu invoken kann.

Ich könnte mich sogar vorstellen das das .Net Framework schon Funktionen dafür bereitstellt.

Es soll natürlich auch funktionieren wenn der User abgemeldet ist.

Ich hab das schon getestet.

Wenn ich abgemeldet bin läuft die Anwendung im Hintergrund weiter. (Sie ist über Netzwerk erreichbar).

Lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aus diesem Grund verfügt das Programm über Rdp Funktionalitäten.
RDP ist eine Betriebssystemfunktion.

Aus diesem Grund verfügt das Programm über Rdp Funktionalitäten.

Wenn das der Fall ist soll diese den Rechner entsperren bevor die rdp session initialisiert wird.

Ich müsste es mal nachstellen, aber wenn du den Rechner sperrst und dich dann per RDP mit genau den Credentials anmeldest, müsstest du eigentlich genau die Usersession erhalten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Vorgehensweise ist von hinten durch die Brust ins Auge..

Was für eine Funktionalität bietet dein Programm eigentlich? Würde es nicht reichen das Programm nach der Anmeldung zu starten?

Ich will da jetzt nicht zu sehr ins Detail gehen da es zu lange dauern würde. Es ist Verwaltungsprogramm.

Nein weil das Programm zusätzlich über Serverfunktionalitäten verfügt. Das heißt Client XY verbindet sich mit der Anwendung und holt/sendet Informationen.

Letztendlich könnte man jetzt sagen, warum hast du das ganze nicht strikter getrennt und die Server Funktionen in ein eigenes Projekt ausgelagert.

Ich kann nur eines sagen.Im Nachhinein ist man immer schlauer :D.

Zumal ist diese Komponente extrem klein und ich hatte ehrlich gesagt keine Lust extra für die zwei Klassen noch ein ein neues Projekt anzulegen das ich dann immer weiter mitpflegen muss.

RDP ist eine Betriebssystemfunktion.

Ich wusste jetzt nicht wie ich es nennen sollte. Ich meine vergleichbare Funktionalitäten wie rdp.

Das heißt ein Modul des Programm ermöglicht mir Remote Eingaben und überträgt mir den Bildschirm.

Ich wollte eigentlich das gleiche Verhalten wie bei Remote Desktop.

Das heißt:

Du gibts die Daten ein und verbindest dich.

Dann öffnet sich ein Dialog in dem der User den Windows Benutzer sowie das Passwort einträgt.

Dann wird auf der Remote Maschine eine Session gestartet und du siehst/steuerst dann die Session.

Ich weiß. Remote Desktop läuft als Service. Jedoch ist diese Funktionalität nur ein bruchteil des Programmes und wie schon gesagt. Das umschreiben würde mich mind. zwei Wochen kosten. Diese Zeit habe ich nicht.

Deswegen habe ich gefragt ob jemand eine Funktion im .NET Framework kennt die mir das ermöglicht.

Letztendlich ist es doch eine Win32 Funktion gewesen und das Problem ist so gelöst wie es mir am besten gefällt :).

Jetzt wird geprüft ob der Rechner gesperrt oder abgemeldet ist.

Ist das der Fall, sendet das Servermodul dem Clientmodul eine Authentifizierungsanfrage.

Der User tippt das brav ein, überträgt das dem Servermodul und das Servermodul setzt ein Logonuser ab und prüft das handle das es bekommt. Wenn es gültig ist, war die Anmeldung erfolgreich und schon kanns weitergehn.

Um die Sicherheit muss ich mir kein Kopf machen da die komplette Kommunikation mit einer Symmetrischen 128 bit Verschlüsselung gesichert wurde.

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...