Hirdetés
Új hozzászólás Aktív témák
-
joysefke
veterán
WindowsIdentity-vel kapcsolatban szeretnék segítséget kérni. Nem értek hozzá, eddig nem kellett ezzel foglalkoznom. Világítsatok rá, ha valami valahol technikailag nem megoldható.
1, van egy applikáció ami egy lokál service account "LOCALPC\MyService" nevében fut.
ennek az accountnak igény szerint tudok jogosultságokat adni.2, Elő kell állítanom egy WindowsIdentity objektumot ami egy domain usert személyesít meg: DOMAIN1\Pisti . Ezt a WindowsIdentity objektumot egy belső API használja. Úgy gondolom, hogy nem imperszonálásra, csupán a usert érintő AD security releváns információk megnézésére. Ebben nem vagyok biztos.
3, Az applikáció rendelkezik a domain admin user/pwd párosával "DOMAIN1\Administrator" + Pwd (igen, ez már eredetileg egy ilyen applikáció
) Pistiével és a többi userével viszont nem.Tehát szeretnék DOMAIN1\Pistike nevére előállítani az applikációban egy WindowsIdentity objektumot.
Nem tudom, hogy ez egyáltalán lehetséges-e.
4, Létezhet-e WindowsIdentity objektum a LOCALPC-n DOMAIN1\Pisti nevére anélkül, hogy a LOCALPC a DOMAIN1-ben lenne? Jelenlegi környezetemben a LOCALPC bent van a domainben, de az appot futtató account nincsen.
5, Hogyan tudom megvalósítani? Nem akar összejönni, bár ez nem csoda, mert nincs vele tapasztalatom?
Azt látom, hogy ha "DOMAIN1\Administrator" futtat kódot, akkor
new WindowsIdentity(string: DOMAIN1_Pisti_upn)
konstruktorral tudok érvényes és az app számára használható WindowsIdentity objektumot létrekozni. Pisti nevére Pisti pwd-je nélkülAz is működik, hogy LOCALPC\MyService futtatja a kódot és bejelentkezteti a DOMAIN1\Administrator-t username/pwd-vel
advapi32.dll.LogonUser(lpszUsername, lpszDomain, string lpszPassword, dwLogonType, dwLogonProvider, out phToken)-en keresztül. Itt végül visszakapok egy WindowsIdenity a DOMAIN1\Administrator nevére és úgy tűnik, hogy imperszonálásra is tudom használni, de anew WindowsIdentity(string: DOMAIN1_Pisti_upn)
hívás így is elbukik. Az alábbi hibaüzenettel:Error Message: Test method ApiSandbox.ImpersonationSandbox.Test2 threw exception: System.DllNotFoundException: Unable to load DLL 'secur32.dll': Either a required impersonation level was not provided, or the provided impersonation level is invalid. (Exception from HRESULT: 0x80070542) Stack Trace: at System.Security.Principal.WindowsIdentity.KerbS4ULogon(String upn, SafeAccessTokenHandle& safeTokenHandle) at System.Security.Principal.WindowsIdentity..ctor(String sUserPrincipalName, String type) at System.Security.Principal.WindowsIdentity..ctor(String sUserPrincipalName) at ApiSandbox.ImpersonationSandbox.Test2() in C:\...\ImpersonationSandbox.cs:line 48
Az eleje, az "Unable to load DLL 'secur32.dll'" biztosan nem stimmel. Ugyanazt a tesztkódot domain-adminként elindítva lefut.
Van ezzel a témával kapcsolatban valami jó anyag?
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Oppo A14 4/64GB / 12 hó jótállás
- BESZÁMÍTÁS! 16GB G.SKILL Trident Z 4000MHz DDR4 memória garanciával hibátlan működéssel
- Gamer PC-Számítógép! Csere-Beszámítás! R5 8600G / 6700XT 12GB / 16GB DDR5 / 512 SSD + 2TB HDD!
- Lenovo X13 Yoga 2in1 Thinkpad WUXGA IPS Touch i5.1135G7 16GB 256GB Intel Iris XE Win11 Pro Garancia
- Készpénzes / Utalásos Számítógép felvásárlás! Személyesen vagy Postával!
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest
) Pistiével és a többi userével viszont nem.

