Toon posts:

C# Register

Pagina: 1
Acties:
  • 390 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Is het met c#.net 2 mogelijk om keys in het register aan te passen onder een ander account dan waarmee het programma is gestart ?

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 20-02 03:31

Gerco

Professional Newbie

Als dat account daar de rechten voor heeft wel ja, via HKEY_USERS\<sid>.

[ Voor 28% gewijzigd door Gerco op 23-05-2006 17:01 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Dus het programma is gestart met een account dat geen rechten heeft om dingen in het register aan te passen. Maar ik heb wel de gegevens van het administrator account van de lokale computer. Kan ik dan via dat account de acties uitvoeren ?

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 20-02 03:31

Gerco

Professional Newbie

Misschien niet direct, maar je programma kan altijd een subprogramma (of zichzelf) opstarten onder een user die wel rechten heeft en dan het register aanpassen.

Het kan dus ook direct:
Once your call to LogonUser has gotten you a user token for the user you'd like to impersonate, you can then call WindowsIdentity.Impersonate() and have your thread take over the identity of the Windows user you just logged on.
Op die pagina staat een codevoorbeeld voor het impersonaten van een andere user als je de credentials hebt op die manier kun je dan het register aanpassen.

[edit]
Er is geen: WijzigRegister(username, password, wijziging) nee. Anders zou MS voor elke API die er was nog een tweede kunnen maken waar je een username en password aan moet meegeven en er zijn al veel te veel APIs (waarvan zeker de helft alleen voor backward compatibility is).

[ Voor 80% gewijzigd door Gerco op 23-05-2006 17:26 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Topicstarter
Maar je kan dus niet via een api ofzo het register wijzigen dat je dan als parameters
bijv. username wachtwoord en de wijziging moet doorgeven ?

Verwijderd

Topicstarter
Hmm ik had je nieuwe post nog niet gezien toen ik mijne poste. Ik ga er eens even naar kijken

alvast bedankt

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:21
Kijk ook eens naar permissions.
code:
1
2
RegistryPermission p = new RegistryPermission( ... );
p.Assert();

Ik geloof dat het toch zowiezo moet mogelijk zijn om in LOCAL_USER iets aan te passen. (of niet?)

https://fgheysels.github.io/


Verwijderd

Topicstarter
De bedoeling is om het vnc wachtwoord aan te passen maar het account is gestart zonder rechten voor het register. In mijn applicatie haal ik dan het wachtwoord en de gebruikersnaam van de lokale administrator uit de database. En met deze gegevens wil ik dat het register aanpassen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:21
Ja, en ? :?
^^

https://fgheysels.github.io/


  • 3Feet
  • Registratie: Juli 2000
  • Niet online
google eens op: 'CurrentPrincipal Identity Thread'

Verwijderd

Topicstarter
Was gewoon even voor de duidelijkheid. Ik ben nu aan het lezen op die site, kijken of het daarmee lukt.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:21
Kijk misschien eerst eens naar die Permissions.

https://fgheysels.github.io/


Verwijderd

Topicstarter
C#:
1
2
3
4
5
6
7
RegistryPermission f = new RegistryPermission(
RegistryPermissionAccess.Write,"HKEY_CURRENT_USER\\Software\\ORL\\WinVNC3\\");
f.Assert();

RegistryKey oRegKey = Registry.CurrentUser;
oRegKey = oRegKey.OpenSubKey(@"Software\ORL\WinVNC3");
oRegKey.SetValue("Password",hexString,RegistryValueKind.Binary);


Hij geeft een foutmelding bij het SetValue (Cannot write to the registry key. ) . Zelfs als ik onder een administrator account ingelod ben. En als ik bij de machtegingen van de sleutel kijk heeft het account waar ik mee ingelogd ben wel rechten voor volledig beheer.

http://www.codeproject.com/csharp/cpimpersonation1.asp

Daarmee is het gelukt om onder een ander account acties uit te voeren. Alleen helaas werkt deze code niet onder windows 2000 en dit is wel nodig. Iemand nog een andere oplossing ?

[ Voor 62% gewijzigd door Verwijderd op 24-05-2006 11:58 ]

Pagina: 1