AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[Win2000] - Abmelden vom Dienst

Ein Thema von xZise · begonnen am 19. Dez 2007 · letzter Beitrag vom 2. Apr 2009
Antwort Antwort
Seite 2 von 4     12 34      
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#11

Re: [Win2000] - Abmelden vom Dienst

  Alt 19. Dez 2007, 20:33
unter Windows 2000 muss man über einen Prozess das Token des Benutzers erfahren (TJwSecurityToken.CreateCompatibilityQueryUserToke n).

Man kann das Token dann sofort personifizieren (impersonate), da jeder Prozess mindestens ein Thread besitzt.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#12

Re: [Win2000] - Abmelden vom Dienst

  Alt 19. Dez 2007, 21:50
Dann würde also der Dienst zu einen Prozess des Benutzers? Oder wie sage ich, dass ein anderer Prozess ein Benutzer gehört?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#13

Re: [Win2000] - Abmelden vom Dienst

  Alt 19. Dez 2007, 21:57
Nein, der aktuelle Thread des Dienstes, gibt sich vorübergehend für jemand anderes aus - mit weniger Rechten usw.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#14

Re: [Win2000] - Abmelden vom Dienst

  Alt 19. Dez 2007, 22:21
Ah Okay...
Ist natürlich doof, dass der Dienst sich lieber beenden sollte, wenn das zurückgschalten fehlschlägt ...

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#15

Re: [Win2000] - Abmelden vom Dienst

  Alt 20. Dez 2007, 11:18
Warum soll er das?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#16

Re: [Win2000] - Abmelden vom Dienst

  Alt 15. Apr 2008, 16:45
Ich weiß zwar nicht mehr sogenau, warum ich das gesagt habe

Aber eigentlich habe ich da eine Frage: Wie lange bin ich der andere Benutzer?
Und sind Dienste vom abmelden betroffen, wenn diese im Kontext des abmeldenden Benutzers ausgeführt werden?

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#17

Re: [Win2000] - Abmelden vom Dienst

  Alt 15. Apr 2008, 16:53
Das Tokenhandle ist unabhängig von der interaktiven Anmeldung. Solange ein Handle auf ein Token besteht, solange bleibt das Token erhalten. Da kann der Benutzer sich 50x abmelden.
Gehe aber nicht davon aus, dass Netzwerklaufwerke oder andere Resourcen verfügbar sind. Das Benutzerprofil könnte auch entladen werden. Die Registrykeys müssen mit LoadUserProfile extra geladen werden.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#18

Re: [Win2000] - Abmelden vom Dienst

  Alt 15. Apr 2008, 17:51
Naja, ich möchte eigentlich nur den aktuell angemeldeten Benutzer abmelden, also so, als würde er auf Start klciken und "Abmelden" anwählen.
Und wie komme ich mit den TJwSecurityToken an das Token zum Impersonisieren?

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#19

Re: [Win2000] - Abmelden vom Dienst

  Alt 16. Apr 2008, 22:27
Also ich wüsste schon gerne, wie ich es hinkriege, dass ich als installierter Service unter den Benutzer "NT-Autorität" den aktuell aktiven Benutzer abmelden kann

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#20

Re: [Win2000] - Abmelden vom Dienst

  Alt 28. Mär 2009, 12:20
Zitat von xZise:
[...]Ist natürlich doof, dass der Dienst sich lieber beenden sollte, wenn das zurückgschalten fehlschlägt[...]
Ha ich weiß jetzt wieder, warum ich das gesagt habe

Ein Prozess unter einem anderem Benutzer ausführen - Teil 1 Impersonate
Mit der Funktion RevertToSelf wird die Verkörperung eines anderen Benutzers wieder aufgehoben. Aus Sicherheitsgründen sollte man den Prozess beenden, wenn diese Funktion fehlschlägt, da sonst der Prozess weiter unter den Benutzerrechten des anderen Benutzers ausgeführt wird.
(Siehe hier)

Was mich wieder zur Frage zurückbringt. Ich habe das erstmal so implementiert:
Delphi-Quellcode:
token := TJwSecurityToken.CreateWTSQueryUserToken(TOKEN_ALL_ACCESS);
try
  if ImpersonateLoggedOnUser(token.TokenHandle) then
  begin
    vi.dwOSVersionInfoSize:=SizeOf(vi);
    GetVersionEx(vi);
    if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then // Windows NT
    begin
      OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,hToken);
      LookupPrivilegeValue(nil,'SeShutdownPrivilege',tp.Privileges[0].Luid);
      tp.PrivilegeCount := 1;
      tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      h := 0;
      AdjustTokenPrivileges(hToken,False,tp,0,PTokenPrivileges(nil)^,h);
      CloseHandle(hToken);
      Result := ExitWindowsEx(flag,0);
    end;
  end;
finally
  token.Free;
end;
MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz