2017-03-25 14 views
1

いくつかの操作を行う小さなWPFアプリケーションを作成しました。私はこのアプリケーションをいくつかの人に配布したいと思いますが、私は許可された人だけがアクセスできるようにしたいと思っています。私は実際に登録メカニズムを必要としません。Windows Presentation Foundation(WPF)アプリケーションで安全なログインmechansimを実装する

アプリケーションが非常に小さく、EXEファイルとして配信されるため、データベースを持つことは効率的な考えではないと私は考えています。

私は認可された人物の資格情報を含むファイルをアプリケーション内に持っていると考えていましたが、わかっている限り、WPFアプリケーションは容易に逆転できるように設計されています。私は自分の思考を、そのアプリケーションを人と何かを認めるためにサーバーに接続させることにしましたが、それが良い選択かどうかは分かりませんでした。

私はこのトピックについて検索するたびに、ログインメカニズムではなくUIの実装例を得ているので、読んだり読んだりするべきことがありますか。

+1

プログラムがサーバー接触サーバーから資格情報を検証するためのリソースを使用していない場合は、あまり役に立ちません。ユーザーは、多くの作業をすることなく、ログインチェックを完全に無視するようにアプリケーションを修正するかもしれません。アプリケーション自体に資格情報を格納するよりも少し上手です。 – Evk

答えて

0

任意の.NETアプリを逆転することは非常に容易です認証システムを持つことのポイントは、Noobsと逆のプログラミングについて知らない人に対処するためのものです。あなたは認証システムを使うことができますgのCpuのIDは私が使用する魔法使い、しかし私が言ったような方法は.Netは可逆です。 私はあなたとshier私の認証ロジックは以下となります。あなたはあなたのUIでその後のCPU IDいくつかの暗号化を行う

Public static string Encrypt(string CpuId) 
{ // do some encryption 
    retuen encryptionCpuId; 
} 

を持っていた後

public static string GetId() 
    { 
     string cpuInfo = string.Empty; 
     ManagementClass mc = new ManagementClass("win32_processor"); 
     ManagementObjectCollection moc = mc.GetInstances(); 

     foreach (ManagementObject mo in moc) 
     { 
      if (cpuInfo == "") 
      { 
       //Get only the first CPU's ID 
       cpuInfo = mo.Properties["processorID"].Value.ToString(); 
       break; 
      } 
     } 
     return cpuInfo; 
    } 

ユーザーに自分のCPUIDを示し、彼がお送りしますダイアログウィンドウを作成しますその後、ユーザーのcpuIDを暗号化し、彼にアクティベーションキーを与え、暗号化のための他のプロジェクトを作成する必要があります。また、あなたのアプリで公開することを確認してください:

if(Key== Encrypt(GetId()) {// Welcome } 
else {Environment.Exit(0); } 

すべてのユーザーにはそれぞれ独自のキーがあります。

この後、いずれかがあなたのコードを反映し、このメカニズムを解読できることを知る必要があります。

関連する問題