2012-01-21 13 views
0

私はC#でユーザーがダウンロードして自分のWebサイトで使用できるコントロールを作成しました。私はこのコントロールを課金し、特定のドメイン(コントロールが使用されているドメイン)でのみ動作するライセンスキーを作成する機能を望みます。ドメインベースのC#ライセンス

私はRhinoライセンスをayendeで見てきましたが、自分のプロジェクトにどのように組み込むかについての情報がありませんでした。

私は以下のいずれかを探しています - ドメインベースのライセンスをC#で処理するための詳細なチュートリアルまたは特定の無料ソリューションに関する提案。

+1

承認済みドメインのリストを取得し、ドメインが承認されているかどうかを確認することができます。 –

+0

私はもう少し詳細を探しています。 – Avisra

+0

コントロールが実行されているドメインを知ることができますか、それとも答えの一部として必要ですか? –

答えて

2

現在のところコントロールが実行されているドメインがわかっている場合は、暗号化されたライセンスファイルを使用する方法があります。

基本的には、あなたの終わりに、あなた:

  1. 必要に応じてライセンスがあるとライセンスの期限が切れる日付、およびドメイン(複数可)、ライセンスが作成された日付が含まれているライセンスファイルを、生成
  2. RSA(.NETに組み込まれています)などのPKIシステムを使用してファイルを暗号化または少なくとも署名します。
  3. この暗号化された/署名されたライセンスファイルを、あなたのコントロール
彼らの最後に

が、彼らはなります

  1. は、例えば、場所、合意にApp_Dataにまたはフォルダ
  2. 必要に応じて同様のタイプのライセンスファイルをドロップし、これを指すようにweb.configファイルを変更しますライセンスファイル、場所はあなたには、コードで自動的に

う働いていない場合:

  1. はPRIと一緒に行くの公開鍵をバンドルライセンスファイルの暗号化/署名に使用したvateキー、コントロールの一部として、またはコントロールと別のファイルとして
  2. 署名を復号して確認すると、ライセンスファイルが改ざんされていないことが保証されます直接テイクアクション
  3. ライセンスファイル内のコントロールが下に実行されているドメインが表示されていることを確認
  4. あなたからそうでない場合は
+0

Lassee - これは素晴らしいと思います。私は、暗号、プライベート/パブリックキー、およびライセンスの作成に非常に慣れています。あなたはこれを行うためのコードチュートリアルを知っていますか?おそらくコードライブラリですか? – Avisra

+0

"コードライブラリ"では、すべてが.NETに組み込まれています。チュートリアルに関しては、これに関する具体的なチュートリアルはわかりませんが、いくつかあることをほとんど保証することができます。私はちょうどそれらについて知らないのです。 –

0

あなたのコントロールは、ドメインを決定するためにRequest.Urlプロパティにアクセスすることができるはずです現在の要求は、具体的にはRequest.Url.Hostプロパティに対して実行されています。いったんそれを得たら、現在のドメイン名が「ライセンス供与されている」かどうかをどのように判断するかはあなた次第です。

あなたはオプションのカップルをしました:

  • あなたが生成ライセンスキー、ドメイン名のハッシュが一致する可能性のハッシュのいくつかの形。
  • ドメインがお客様のコントロール用にライセンスされているかどうかを判断するためのWebサービスの呼び出し(お客様のWebサーバーによってブロックされる可能性があるため理想的ではありません)
  • 各顧客に別注アセンブリを提供する内部に許可されたドメインがハードコードされています。言及する価値

一つはRequest.IsLocalプロパティがtrueあるときに、ローカルテストがチェックをライセンス発生しないようにあなたが作る任意のライセンスチェックを無効にすることを検討しています。また、プライベートIP範囲(例:10.xxx)に特定の除外項目を追加して、ビルドサーバー、テストサーバーなどがライセンスを必要としないようにすることもできます(コントロールがイントラネットなどで使用される可能性が高い場合を除きます)。 )。

関連する問題