Uygulamam için çok temel bir lisanslama özelliği uygulamak üzereyim. Makine başına (veya işletim sistemi) veya kullanıcı başına bir seri numarası verilebilir (Windows Server'da CAL için olduğu gibi: Uygulamam bir makinede birkaç kullanıcı tarafından kullanılıyorsa veya birkaç kullanıcı tarafından kullanılıyorsa makineleri)..NET uygulama başına makine/kullanıcı lisansı için
başına işletim sistemi lisans için, SERIALNUMBER Win32_OperatingSystem arasında kullanımı.
kullanıcı başına lisans için, kullanımı:
WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent(); if (currentIdentity != null) { SecurityIdentifier userSid = currentIdentity.User.AccountDomainSid; Console.WriteLine(userSid); }
elde edilen bir işletim sistemi seri numarasının bir karma veya SID sonra uygulama seri ile ilişkili veri tabanında depolanır; Program her başladığında, sunucuya sorgular, OS SN/SID ve uygulama serisinin karmasını gönderir.
Bunu yapmak doğru bir şey mi yoksa tamamen yanlış mı? Her Windows makinesinde çalışacak mı? (Örneğin, using motherboard serial is wrong)
Bana sesler geliyor, ben işten projelerin biri için WMI yoluyla donanım kimlikleri karmalarını kullanıyorum. Herhangi bir donanım kimliğinin biçimini almayı unutmayın - geri dönen dizelerin boşluk ve malzeme döndürmediğini varsaymak için yazılan kodun neden olduğu hataları gördüm. – anonymous
Görüşlerin sayısını ve başka cevapların bulunmadığını görmek benim yaklaşımımın tamamen yanlış olmadığını sonucuna varıyorum. @Mr Roys, belki bir cevaba yorumunuzu tanıtabilirsiniz, bu yüzden kabul edebilir miyim? –
Sanal ortam kullanıldığında senaryoya da bakmak isteyebilirsiniz. Hala benzersiz işletim sistemi s/n mi olur? Bunun bir cevap olmadığını biliyorum ... ama buraya yorum ekleyemedim .. –