password for a component in a project

Comments

2 comments

  • Avatar
    wojciechka

    InstallBuilder provides encryption of the payload. However, the encryption has to be done for the entire installer and not individual files.

    To enable encryption, simply add the following to your project and make a full build:

    <project> <enableEncryption>1</enableEncryption> <encryptionPassword>RandomGeneratedPassword</encryptionPassword> <!-- ... --> </project>

    If you want some content to be available - such as free/demo version and paid version - the best solution is to simply provide two installers - one (without password) for the free/demo version and full version with password enabled. The full installer could also check that free version is already installed (i.e. by checking if certain files are present in the installation directory) and skip copying of files also in the free version.

    You can find out more in Encryption and password protection section of InstallBuilder user guide.

    The documentation also shows options for using HTTP protocol to get password for the installer over the Internet and requiring specifying a valid license and/or username and password to retrieve the password. This can be useful to limit possibilities for illegal redistribution of the software as well track licenses and/or installations of the software.

  • Avatar
    wscjr1

    Here's how I do this: after the end user has chosen components, in readyToInstallActionList, I determine if any "protected" ones are selected. If so, I ask for a registration code using showStringQuestion. If the entered string contains the correct substrings/passcodes for all the components selected, good. Otherwise I deselect the unauthorized components using componentSelection.

    Here's how I determine whether to ask for the reg. code (I have 3 components that require password protection):

    <setInstallerVariable>
        <name>registrationNotRequired</name>
        <value>1</value>
        <ruleList>
            <componentTest logic="not_selected" name="ProtectedOption1"/>
            <componentTest logic="not_selected" name="ProtectedOption2"/>
            <componentTest logic="not_selected" name="ProtectedOption3"/>
        </ruleList>
    </setInstallerVariable>
    <showStringQuestion>
        <text>Please enter your Registration Code, which is on the CD package.</text>
        <!-- Ask for Reg. Code if registration IS required. -->
        <title>Registration Code</title>
        <variable>registrationCode</variable>
        <ruleList>
            <isFalse value="${registrationNotRequired}"/>
        </ruleList>
    </showStringQuestion>
    

Please sign in to leave a comment.