アプリケーションに非常に基本的なライセンス機能を実装しようとしています。シリアル番号は、マシンごと (またはオペレーティング システムごと) またはユーザーごと (Windows Server の CAL の場合: アプリケーションが 1 台のマシンで複数のユーザーによって使用されている場合、または複数のマシンで 1 人のユーザーによって使用されている場合) に付与されます。機械)。
オペレーティング システムごとのライセンスには、Win32_OperatingSystemのSerialNumberを使用します。
ユーザーごとのライセンスについては、次のものを使用します。
WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent(); if (currentIdentity != null) { SecurityIdentifier userSid = currentIdentity.User.AccountDomainSid; Console.WriteLine(userSid); }
取得した OS シリアル番号または SID のハッシュは、データベースに格納され、アプリケーション シリアルに関連付けられます。プログラムが起動するたびに、サーバーにクエリを実行し、OS SN/SID のハッシュとアプリケーション シリアルを送信します。
それを行うのは正しいことですか、それとも完全に間違っていますか? すべての Windows マシンで動作しますか? (たとえば、マザーボードのシリアルを使用するのは間違っています)