vb6 - Behov for at kontrollere Windows-logonprocessen

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en ansøgning, jeg skrev i VB6, og den skal køre lige efter, at brugeren logger ind, men før skrivebordet faktisk indlæser. Hvorfor spørger du godt, jeg vil fortælle dig. VB-appen beder brugeren om nogle oplysninger, der er valideret mod en ekstern database. Hvis valideringen mislykkes, skal brugeren ikke have lov til at logge ind, og VB app tvinger derfor en logout. Jeg har læst nogle artikler om msGina.dll og logonprocessen, men jeg finder stadig ikke en levedygtig løsning. nogen ideer om denne?

Bedste reference


Ideelt set vil du skrive din egen GINA-udbyder for at ændre login-mekanismen i Windows. Forstå, at dette er et seriøst engagement, men du skal skrive din kode i C/C ++, og du skal være meget, meget Pas på, hvordan du opbygger det for ikke at åbne flere bagdøre og sårbarheder, så du ikke destabiliserer resten af ​​Windows.


Din VB6 app er IKKE vejen til at gå i dette scenario af mange forskellige grunde, ikke mindst det faktum, at det er ret trivielt at aflytte og omgå din sikkerhedsmekanisme helt.


At bygge en login-mekanisme virker som et stykke kage, indtil du virkelig begynder at grave dig ind i, hvordan man bygger en, der er solid og bombesikker. Jeg ved det, fordi jeg en gang leder en teambuilding en brugerdefineret GINA for en europæisk regering desktops!


Hvis du er sikker på, at du vil bygge en brugerdefineret GINA, så kig på disse oversigtsartikler:


Tilpasning af GINA, del 1 [2]


Tilpasning af GINA, del 2 [3]

Andre referencer 1


En GINA er en mulighed, men kun til Windows XP. Tilsvarende for Windows Vista og senere er en legitimationsleverandør. [4]


Som et alternativ kan du ændre den indledende brugerproces ved at ændre Userinit-værdien i denne registreringsnøgle:


HKEY\_LOCAL\_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon


Hvis du gør dette, skal du sørge for, at din ansøgning lancerer brugerinit, når den er færdig, eller at brugerens shell ikke bliver startet. Bemærk, at dette ikke forhindrer kendte brugere i at omgå din ansøgning, i hvert fald ikke uden yderligere trin.


En credential manager kan interagere med brugeren under logonprocessen, men jeg tror ikke, det giver nogen direkte måde at afvise logon på. Det kan være muligt at hacke noget sammen, men jeg vil ikke anbefale det. [5]


Jeg tror, ​​at en gruppepolitik-klient-sideudvidelse er i stand til at afvise en brugerlogon, men jeg er ikke bekendt med denne teknologi. [6]

Andre referencer 2


Dette er en meget mærkelig tilgang til sikkerhed, du kan se på 'Autoexec.bat' -filen, selvom jeg ikke har tæmmet det med mig selv. Uanset hvad jeg formoder, at brugeren sandsynligvis kunne 'Afslut opgave' din VB6 app fra task manager og leder om deres glædelige måde.