So in the past I have always developed windows forms client software while inside the work network, we went on the lazy rule that no external hardware is allowed on site, nobody can tamper with the hardware so software was always going to be run within the network which were all joined, this allowed me to lazily set the context as follows:
WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent());
Thread.CurrentPrincipal = wp;
So now I have been asked to write an application which is going to be running on sales-rep laptops. I can't 100% guarantee that they don't take that software and run on their home PC and have it "pretend joined" to a network. I know I can detect what network name they might be joined to, but what is the correct approach for guaranteeing that the network IS in fact OUR network? Is there some sort of fingerprint I can embed inside the application itself for determining if the network is our work network?