private void BrowseBTN_Click(object sender, EventArgs e)
{
try
{
DirectoryObjectPickerDialog picker = new DirectoryObjectPickerDialog();
picker.AllowedObjectTypes = CubicOrange.Windows.Forms.ActiveDirectory.ObjectTypes.Computers | CubicOrange.Windows.Forms.ActiveDirectory.ObjectTypes.BuiltInGroups | CubicOrange.Windows.Forms.ActiveDirectory.ObjectTypes.Groups | CubicOrange.Windows.Forms.ActiveDirectory.ObjectTypes.Users | CubicOrange.Windows.Forms.ActiveDirectory.ObjectTypes.WellKnownPrincipals;
picker.DefaultObjectTypes = picker.AllowedObjectTypes;
picker.AllowedLocations = CubicOrange.Windows.Forms.ActiveDirectory.Locations.All;
picker.DefaultLocations = CubicOrange.Windows.Forms.ActiveDirectory.Locations.All;
picker.MultiSelect = false;
picker.TargetComputer = null;
if (picker.ShowDialog(this) != DialogResult.OK)
{
return;
}
DirectoryObject[] results = picker.SelectedObjects;
if (results == null || results.Length != 1)
{
return;
}
if (!String.IsNullOrEmpty(results[0].Path))
{
string path = results[0].Path;
string[] fields = path.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
string domain = fields[fields.Length-2];
string account = fields[fields.Length-1];
if (String.Compare(domain, System.Net.Dns.GetHostName(), StringComparison.InvariantCultureIgnoreCase) == 0)
{
m_identity = new NTAccount(account);
}
else
{
m_identity = new NTAccount(domain, account);
}
}
else
{
m_identity = new NTAccount(results[0].Name);
}
if (m_identity != null)
{
IdentityNameTB.Text = m_identity.ToString();
}
}
catch (Exception exception)
{
GuiUtils.HandleException(this.Text, System.Reflection.MethodBase.GetCurrentMethod(), exception);
}
}
#endregion