2009-08-04 10 views
0

Zurzeit Windows Server als festen Benutzer ausführen, legen wir die Anmeldeeigenschaften auf dem Windows-Dienst (wo wir den Benutzernamen und das Kennwort angeben, um als auszuführen).Identitätswechsel für Windows-Dienst mit Konfigurationsdatei

aber ich bin bereit, diese Funktion der Windows-Dienst als fester Benutzer als Identitätswechsel in Web-Anwendung in der Konfigurationsdatei erwähnt zu haben.

bitte werfen Sie Ihre Gedanken dazu, ist es eine praktikable Ansatz einfache Möglichkeit, dies zu implementieren.

Antwort

0

Ihr zweiter Absatz macht keinen Sinn ...

Wenn ich verstehe, was ich denke, Sie fragen, ist es vorzuziehen, das Benutzerkonto angeben möchten unter einen Dienst auszuführen, die Anmelde Registerkarte auf die Verwendung von Diensteigenschaften-Dialog.

+0

Martin, sondern im Eigenschaftendialog das Konto anzugeben, ist es möglich, sie in app.config und Verwendung zu erwähnen, die zu berücksichtigen Führen Sie den Dienst als aus. –

+0

Ich weiß nicht aus der Spitze meines Kopfes Ich habe Angst. Bei diesem Ansatz müssen Sie jedoch ein Passwort in die app.config eingeben. Ich sehe nicht, was es tatsächlich für Sie tun wird, wenn Sie die Anmelde-Registerkarte verwenden (außer, um ein Sicherheitsloch zu erstellen). – MPritchard

1

Ja, Sie können WindowsIdentity.Impersonate verwenden, um sich als Benutzer auszugeben. Aber es wäre eine sehr schlechte Idee, das zu tun, was Sie vorschlagen. Sie müssen eine sichere Methode zum Speichern der Benutzeranmeldeinformationen in Ihrer app.config (DPAPI maybe) finden.

0

Nein, die Sitzung des Dienstes wird angemeldet, bevor die ausführbare Datei überhaupt geladen wird. Die einzige Möglichkeit, das Konto anzugeben, unter dem der Dienst ausgeführt wird, ist der Dienstbenutzername und das Kennwort.

Sie können jedoch LogonUser und WindowsIdentity.Impersonate verwenden, um einen Thread in Ihrem Dienst als bestimmten Benutzer ausführen zu lassen. Wie JP sagt, muss es sicher gespeichert werden - mit Verschlüsselung und wahrscheinlich an einem sicheren Ort in der Registry und nicht in der Datei app.config.

Sie können auch einen Client mit WCF oder einem AuthenticatedStream Identitätswechsel usw.