in src/MIMConfigDocumenter/ConnectorDocumenter.cs [2715:2769]
protected void FillConnectorPasswordManagementConfigurationDataSet(bool pilotConfig)
{
Logger.Instance.WriteMethodEntry("Pilot Config: '{0}'.", pilotConfig);
try
{
var config = pilotConfig ? this.PilotXml : this.ProductionXml;
var dataSet = pilotConfig ? this.PilotDataSet : this.ProductionDataSet;
var table = dataSet.Tables[0];
var connector = config.XPathSelectElement(Documenter.GetConnectorXmlRootXPath(pilotConfig) + "/ma-data[name ='" + this.ConnectorName + "']");
if (connector != null)
{
var enablePasswordSync = !((string)connector.XPathSelectElement("password-sync-allowed") ?? string.Empty).Equals("1", StringComparison.OrdinalIgnoreCase) ? "No" : "Yes";
Documenter.AddRow(table, new object[] { 0, "Enable password management", enablePasswordSync });
if (enablePasswordSync.Equals("Yes", StringComparison.OrdinalIgnoreCase))
{
if (connector.XPathSelectElement("private-configuration/*/password-extension-config[password-extension-enabled = '1']") != null)
{
Documenter.AddRow(table, new object[] { 1, "Extension name", (string)connector.XPathSelectElement("private-configuration/*/password-extension-config/dll") });
var connectionInfo = connector.XPathSelectElement("private-configuration/*/password-extension-config/connection-info");
if (connectionInfo != null)
{
Documenter.AddRow(table, new object[] { 2, "Connect To", (string)connectionInfo.Element("connect-to") });
Documenter.AddRow(table, new object[] { 3, "User", (string)connectionInfo.Element("user") });
Documenter.AddRow(table, new object[] { 4, "Password", "******" });
}
Documenter.AddRow(table, new object[] { 5, "Connection timeout (seconds)", (string)connector.XPathSelectElement("private-configuration/*/password-extension-config/timeout") });
var passwordSetEnabled = ((string)connector.XPathSelectElement("private-configuration/*/password-extension-config/password-set-enabled")).Equals("1", StringComparison.OrdinalIgnoreCase);
var passwordChangeEnabled = ((string)connector.XPathSelectElement("private-configuration/*/password-extension-config/password-change-enabled")).Equals("1", StringComparison.OrdinalIgnoreCase);
Documenter.AddRow(table, new object[] { 6, "Supported password operations", passwordSetEnabled && passwordChangeEnabled ? "Set and change" : passwordSetEnabled ? "Set" : passwordChangeEnabled ? "Change" : string.Empty });
}
// Password sync target settings
Documenter.AddRow(table, new object[] { 11, "Maximum retry count", (string)connector.XPathSelectElement("password-sync/maximum-retry-count") });
Documenter.AddRow(table, new object[] { 12, "Retry interval (seconds)", (string)connector.XPathSelectElement("password-sync/retry-interval") });
Documenter.AddRow(table, new object[] { 13, "Require secure connection for password synchronization options", !((string)connector.XPathSelectElement("password-sync/allow-low-security") ?? string.Empty).Equals("1", StringComparison.OrdinalIgnoreCase) ? "Yes" : "No" });
}
table.AcceptChanges();
}
}
finally
{
Logger.Instance.WriteMethodExit("Pilot Config: '{0}'.", pilotConfig);
}
}