Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

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

Warum nutzt du nicht die gegebenen Möglichkeiten von Windows aus und lässt das Programm als Service mit einem Serviceuseraccount laufen?

  • Autor

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

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

  • Autor
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

Es soll per direkter Interaktion ... Steuerbar sein.

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?

  • Autor
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

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?

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.

  • Autor
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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.