To use the password policy that you configured on Unwired Server, update your client application to transfer the password policy settings into the data vault.
ConnectionProfile cp = SUP101DB.GetConnectionProfile();
DataVault vault = null;
// handle first-run initialization - create vault, set password policy, set database key
if (!DataVault.VaultExists("myVault"))
{
vault = DataVault.CreateVault("myVault", null, null);
SUP101DB.GenerateEncryptionKey();
vault.Unlock(null, null);
vault.SetString("dbKey", cp.EncryptionKey);
ApplicationSettings aps = app.ApplicationSettings;
if (aps.IsApplicationSettingsAvailable())
{
bool policyEnabled = (bool) aps.GetBooleanProperty(ConnectionPropertyType.PwdPolicy_Enabled);
if (policyEnabled)
{
try
{
DataVault.PasswordPolicy oPasswordPolicy = new DataVault.PasswordPolicy();
oPasswordPolicy.defaultPasswordAllowed =
(bool) aps.GetBooleanProperty(
ConnectionPropertyType.PwdPolicy_Default_Password_Allowed);
oPasswordPolicy.minimumLength =
(int) aps.GetIntegerProperty(
ConnectionPropertyType.PwdPolicy_Length);
oPasswordPolicy.hasDigits =
(bool) aps.GetBooleanProperty(
ConnectionPropertyType.PwdPolicy_Has_Digits);
oPasswordPolicy.hasUpper =
(bool) aps.GetBooleanProperty(
ConnectionPropertyType.PwdPolicy_Has_Upper);
oPasswordPolicy.hasLower =
(bool) aps.GetBooleanProperty(
ConnectionPropertyType.PwdPolicy_Has_Lower);
oPasswordPolicy.hasSpecial =
(bool) aps.GetBooleanProperty(
ConnectionPropertyType.PwdPolicy_Has_Special);
oPasswordPolicy.expirationDays =
(int) aps.GetIntegerProperty(
ConnectionPropertyType.PwdPolicy_Expires_In_N_Days);
oPasswordPolicy.minUniqueChars =
(int) aps.GetIntegerProperty(
ConnectionPropertyType.PwdPolicy_Min_Unique_Chars);
oPasswordPolicy.lockTimeout =
(int) aps.GetIntegerProperty(
ConnectionPropertyType.PwdPolicy_Lock_Timeout);
oPasswordPolicy.retryLimit =
(int) aps.GetIntegerProperty(
ConnectionPropertyType.PwdPolicy_Retry_Limit);
// SetPasswordPolicy() will always lock the vault to ensure the old password
// conforms to the new password policy settings.
vault.SetPasswordPolicy(oPasswordPolicy);
vault.ChangePassword(null, null, pwd, null);
}
catch (DataVaultException dve)
{
Console.WriteLine("password not good enough? " + dve);
}
}
}
vault.Lock();
}
else
{
vault = DataVault.GetVault("myVault");
}
if (vault.IsDefaultPasswordUsed())
{
vault.Unlock(null, null);
}
else
{
vault.Unlock(pwd, null);
}
cp.EncryptionKey = vault.GetString("dbKey");