Aspose ライセンスの設定方法

.NET コンポーネント製品


.NET 製品のライセンス設定方法

ライセンス ファイルは平文の XML ファイルです。ライセンス ファイルには、製品名、ライセンスされている開発者数、サブスクリプションの終了日などが含まれます。ファイルはデジタル署名されているので、編集しないでください。ファイルに改行を挿入しただけでも、無効なファイルとみなされるので、ご注意ください。

Aspose.Cells を使用する前にライセンスを設定する必要があります。一つのアプリケーション (プロセス) につき一度のみライセンスを設定する必要があります。ファイルストリームまたは埋め込まれたリソースからライセンスをロード可能です。

Aspose.Cells は、以下の場所でライセンスを検出します。

  • 明確なパス
  • Aspose.xxxxx.dll (例:Aspose.Cells.dll) が存在するフォルダ
  • Aspose.xxxxx.dll を呼び出したアセンブリ (.exe) が存在するフォルダ
  • 起動アセンブリが存在するフォルダ
  • Aspose.xxxxx.dll を呼び出したアセンブリの埋め込まれたリソース

ここでは、ライセンスを設定する一般的な方法を二つ紹介します。


  1. ファイルまたはストリームを使用する場合

    ライセンスを設定する最も簡単な方法は、Aspose.xxxxx.dll と同じフォルダにライセンス ファイルを置いて、パスなしでファイル名を指定します。

    ファイル名を指定する場合のコード例 (Aspose.Cells の場合)

                  // ライセンスのインスタンスを生成し、パスを指定してファイルを設定する
                  Aspose.Cells.License license = new Aspose.Cells.License();
                  license.SetLicense("Aspose.Cells.NET.lic");
                
                  ' ライセンスのインスタンスを生成し、パスを指定してファイルを設定する
                  Dim license As Aspose.Cells.License = New Aspose.Cells.License()
                  license.SetLicense("Aspose.Cells.NET.lic")
                

    注意:
    SetLicense メソッドを呼ぶ場合、ライセンス名は、ライセンス ファイル名と同じにしてください。 たとえば、ライセンス ファイル名を "Aspose.Cells.NET.lic.xml" に変更した場合、 コードでは、SetLicense メソッド用に変更したライセンス名 (Aspose.Cells.NET.lic.xml) を使用してください。

    ストリームからライセンスをロードする場合のコード例 (Aspose.Cells の場合)

                  // ライセンスのインスタンスを生成し、ストリームを指定してファイルを設定する
                  Aspose.Cells.License license = new Aspose.Cells.License();
                  license.SetLicense(myStream);
                
                  ' ライセンスのインスタンスを生成し、ストリームを指定してファイルを設定する
                  Dim license as Aspose.Cells.License = new Aspose.Cells.License()
                  license.SetLicense(myStream)
                


  2. 埋め込まれたリソースを使用する場合

    ライセンスを設定する他の方法として、Aspose.xxxxx (例:Aspose.Cells) を呼ぶアセンブリの一つに、埋め込まれたリソースとしてライセンスを含めることです。埋め込まれたリソースとしてライセンス ファイルを含めるには、以下の手順を実行してください。

    1. Visual Studio .NET では、ファイル | 追加 | 既存の項目 ... メニューを使用してプロジェクトにライセンス ファイル (.lic) を含めます。


    2. ソリューション エクスプローラのファイルを選択し、[プロパティ ウィンドウ] の [ビルド アクション] に「埋め込まれたリソース」を設定します。


    アセンブリに埋め込んだライセンスにアクセスするには (埋め込まれたリソースとして)、 Microsoft .NET Framework の System.Reflection.Assembly クラスの GetExecutingAssembly と GetManifestResourceStream メソッドを呼ぶ必要はありません。埋め込まれたリソースとしてライセンス ファイルを対象のプロジェクトに追加し、SetLicense メソッドにライセンス ファイルの名前を渡すだけです。License クラスが自動的に埋め込まれたリソースのライセンス ファイルを検出します。

    埋め込まれたリソースからライセンスをロードする場合のコード例 (Aspose.Cells の場合)

                  // ライセンスのクラスをインスタンス化
                  Aspose.Cells.License license = new Aspose.Cells.License();
    
                  // アセンブリに埋め込まれたライセンス ファイル名のみを指定する
                  license.SetLicense("Aspose.Cells.NET.lic");
                
                  ' ライセンスのクラスをインスタンス化
                  Dim license As Aspose.Cells.License =  New Aspose.Cells.License()
    
                  ' アセンブリに埋め込まれたライセンス ファイル名のみを指定する
                  license.SetLicense("Aspose.Cells.NET.lic")
                

Java コンポーネント製品


Java 製品のライセンス設定方法

ライセンス ファイルは平文の XML ファイルです。ライセンス ファイルには、製品名、ライセンスされている開発者数、サブスクリプションの終了日などが含まれます。ファイルはデジタル署名されているので、編集しないでください。ファイルに改行を挿入しただけでも、無効なファイルとみなされるので、ご注意ください。

ドキュメントでいかなる操作をする前にライセンスを設定する必要があります。一つのアプリケーション (プロセス) につき一度のみライセンスを設定する必要があります。

ライセンスを設定する最も簡単な方法は、Aspose.xxxxx.jar (例:Aspose.Cells.jar) と同じフォルダにライセンス ファイルを置いて、以下の例のようにパスなしでファイル名を指定します。


ファイル名を指定する場合のコード例 (Aspose.Cells の場合)

          com.aspose.cells.License license = new com.aspose.cells.License();
          license.setLicense("Aspose.Cells.Java.lic");
        

備考:
SetLicense メソッドでは InputStream を使用せずパスを直接指定することも可能です。その場合、メソッドを呼ぶ際、ライセンス名はライセンス ファイル名と同じにしてください。 例えば、ライセンス ファイル名を "Aspose.Cells.Java.lic.xml" に変更した場合、 コード上では、setLicense("Aspose.Cells.Java.lic.xml") と指定してください。


ストリームからライセンスをロードする場合のコード例 (Aspose.Cells の場合)

          com.aspose.cells.License license = new com.aspose.cells.License();
          license.setLicense(new java.io.FileInputStream("Aspose.Cells.Java.lic"));
        

その他の製品


C++ 製品のライセンス設定方法

C++ 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


Python via .NET 製品のライセンス設定方法

Python via .NET 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


Python via Java 製品のライセンス設定方法

Python via Java 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


Python via C++ 製品のライセンス設定方法

Python via C++ 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


Node.js via .NET 製品のライセンス設定方法

Node.js via .NET 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


Node.js via Java 製品のライセンス設定方法

Node.js via Java 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


Node.js via C++ 製品のライセンス設定方法

Node.js via C++ 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


PHP via Java 製品のライセンス設定方法

PHP 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


JavaScript via .NET 製品のライセンス設定方法

JavaScript via .NET 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


JavaScript via C++ 製品のライセンス設定方法

JavaScript via C++ 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


Android via Java 製品のライセンス設定方法

Android via Java 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


SharePoint 製品のライセンス設定方法

SharePoint 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


Reporting Services 製品のライセンス設定方法

Reporting Services 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。


JasperReports 製品のライセンス設定方法

JasperReports 製品のライセンス ファイルの設定方法は、各製品のリンク (英語) をご確認ください。

ライセンス ファイルの保護


ライセンス ファイルの暗号化

ライセンス ファイルは Aspose API を使用するアプリケーションに含める必要があります。一方で、第三者によりライセンス ファイルの内容が参照、コピー、流出されるリスクもあります。ライセンス ファイルをリソースに組み込んで保護する場合でも、オリジナルのライセンス ファイルを配布パッケージから抽出できる危険性があります。

アプリケーションを実装する際には、暗号化された "EncryptedLicense.txt" と復号化に必要な key を参照できるファイルがあれば、ライセンス ファイル (Aspose.xxxxx.lic) を配布する必要がありませんので、ファイル内の情報が読み取られることはありません。

ここでは、ファイルの暗号化と復号化によってライセンス ファイルの内容を保護する方法を C# と Java のそれぞれのサンプル コードで説明します。

  • C# の場合
                  public void EncryptDecryptLicense()
                  {
                      string encryptedFilePath = MyDir + "EncryptedLicense.txt";
    
                      // ライセンスの内容をバイト配列に読み込む
                      byte[] licBytes = File.ReadAllBytes("Aspose.Words.NET.lic");
    
                      // ライセンス ファイルに対して一度だけこの key を使用する。
                      // 他のファイルを保護する場合は、最初に新しい key を生成します。
                      byte[] key = GenerateKey(licBytes.Length);
    
                      // 暗号化したライセンスをファイルとして出力する
                      File.WriteAllBytes(encryptedFilePath, EncryptDecryptLicense(licBytes, key));
    
                      // 暗号化されたライセンスを読み込み、key を使用して復号する
                      byte[] decryptedLicense;
                      decryptedLicense = EncryptDecryptLicense(File.ReadAllBytes(encryptedFilePath), key);
    
                      // 復号化したライセンスを stream に読み込み、ライセンスを設定
                      MemoryStream licenseStream = new MemoryStream(decryptedLicense);
    
                      License license = new License();
                      license.SetLicense(licenseStream);
                  }
    
                  /// 
                  /// XOR を使用した暗号化 / 復号化のためのメソッド
                  /// 
                  public byte[] EncryptDecryptLicense(byte[] licBytes, byte[] key)
                  {
                      byte[] output = new byte[licBytes.Length];
    
                      for (int i = 0; i < licBytes.Length; i++)
                          output[i] = Convert.ToByte(licBytes[i] ^ key[i]);
    
                      return output;
                  }
    
                  /// 
                  /// ライセンスと同じ長さのランダムな key を生成する
                  /// 
                  public byte[] GenerateKey(long size)
                  {
                      RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
                      byte[] strongBytes = new Byte[size];
                      rng.GetBytes(strongBytes);
    
                      return strongBytes;
                  }
                
  • Java の場合
                  public void encryptDecryptLicense() throws Exception
                  {
                      String encryptedFilePath = getMyDir + "EncryptedLicense.txt";
    
                      // ライセンスの内容をバイト配列に読み込む
                      byte[] licBytes = readAllBytesFromFile("Aspose.Words.Java.lic");
    
                      // ライセンス ファイルに対して一度だけこの key を使用する。
                      // 他のファイルを保護する場合は、最初に新しいキーを生成します。
                      byte[] key = generateKey(licBytes.Length);
    
                      // 暗号化したライセンスをファイルとして出力する
                      BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(
                                                             encryptedFilePath));
                      output.write(encryptDecryptLicese(licBytes, key));
                      output.close();
    
                      // 暗号化されたライセンスを読み込み、key を使用して復号する
                      byte[] decryptedLicense = encryptDecryptLicense(
                                        readAllBytesFromFile(encryptedFilePath), key);
    
                      // 復号化したライセンスを stream に読み込み、ライセンスを設定
                      ByteArrayInputStream licenseStream = new ByteArrayInputStream(decryptedLicense);
    
                      License license = new License();
                      license.SetLicense(licenseStream);
                  }
    
                  // XOR を使用した暗号化 / 復号化のためのメソッド
                  public byte[] encryptDecryptLicense(byte[] licBytes, byte[] key)
                  {
                      byte[] output = new byte[licBytes.Length];
    
                      for (int i = 0; i < licBytes.Length; i++)
                          output[i] = (byte)(licBytes[i] ^ key[i]);
    
                      return output;
                  }
    
                  // ライセンスと同じ長さのランダムな key を生成する
                  public byte[] generateKey(int size)
                  {
                      SecureRandom rng = new SecureRandom();
                      byte[] strongBytes = new byte[size];
                      rng.nextBytes(strongBytes);
    
                      return strongBytes;
                  }
    
                  public byte[] readAllBytesFromFile(String filePath) Throws IOException
                  {
                      int pos;
                      InputStream inputStream = new FileInputStream(filePath);
                      ByteArrayOutputStream bos = new ByteArrayOutputStream();
                      while ((pos = inputStream.Read() != -1)
                          bos.write(pos);
    
                      inputStream.close();
    
                      return bos.toByteArray();
                  }
                


ページトップへ