c # - Hvordan kan jeg garantere at en computer er sluttet til et bestemt domæne, mens offline?

Indlæg af Hanne Mølgaard Plasc

Problem



Så i fortiden har jeg altid udviklet Windows-klientprogrammer, mens jeg var inde i arbejdsnetværket. Vi gik på den dovne regel, at ingen ekstern hardware er tilladt på stedet, ingen kan manipulere med hardwareen, så software vil altid blive kørt i netværket som alle blev tilsluttet, gjorde det mig muligt at sætte sammen konteksten som følger:


WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent());
Thread.CurrentPrincipal = wp;


Så nu er jeg blevet bedt om at skrive en ansøgning, der skal køre på salgs-laptops. Jeg kan ikke 100\% garantere, at de ikke tager den software og kører på deres hjemmecomputer og gør det 'lade sig lade være med' til et netværk. Jeg ved, at jeg kan opdage, hvilket netværksnavn de måtte være tilsluttet til, men hvad er den rigtige tilgang til at sikre, at netværket faktisk er vores netværk? Er der en slags fingeraftryk, jeg kan indlejre i selve applikationen for at afgøre, om netværket er vores arbejdsnet?

Bedste reference


Gosh, det er hvad du mente. Hoved møder bordet på mit sted.
Hvad du har brug for er en licens-server. Du beskriver selvfølgelig en virksomheds licens situation! Har du en MSSQL-server i dit netværk?



  • Opret en bruger som your\_program\_nameLCU (licenscheck bruger)

  • Opret en database, hvor brugeren har læseadgang

  • Opret en Prøv-Catch for situationen, når databasen ikke er tilgængelig

  • Selvfølgelig er han ikke i dit netværk så lukker programmet!



Derudover:


Det virker meget godt med VPN! Og jeg gætter på, at det også er nødvendigt!

Andre referencer 1


Hvis det bare er et grundlæggende netværksnavn, skal du kontrollere, at du kun kan bruge identitetsnavnet (WindowsIdentity.GetCurrent().Name), som skal indeholde DOMAIN \ brugernavn. Når du har så mange måder at splitte strnig og hente DOMAIN navnet (se Indbygget hjælper til at analysere User.Identity.Name til Domain \ Brugernavn).


Som nævnt i kommentarerne, selv om nogen kunne teoretisk sætte deres netværksnavn til det samme netværk.