private void buttonLinkedToken_Click(object sender, EventArgs e) { using (var thandle = _object.GetToken(TokenAccess.Query)) { var token = new TokenWithLinkedToken(thandle); TokenWindow window = new TokenWindow(token); window.ShowDialog(); } }
public TokenProperties(IWithToken obj) { InitializeComponent(); _object = obj; listPrivileges.SetDoubleBuffered(true); listPrivileges.ListViewItemSorter = new SortedListViewComparer(listPrivileges); GenericViewMenu.AddMenuItems(copyMenuItem.MenuItems, listPrivileges, null); listPrivileges.ContextMenu = menuPrivileges; _object = obj; try { using (TokenHandle thandle = _object.GetToken(TokenAccess.Query)) { // "General" try { textUser.Text = thandle.GetUser().GetFullName(true); textUserSID.Text = thandle.GetUser().StringSid; textOwner.Text = thandle.GetOwner().GetFullName(true); textPrimaryGroup.Text = thandle.GetPrimaryGroup().GetFullName(true); } catch (Exception ex) { textUser.Text = "(" + ex.Message + ")"; } try { textSessionID.Text = thandle.GetSessionId().ToString(); } catch (Exception ex) { textSessionID.Text = "(" + ex.Message + ")"; } try { var type = thandle.GetElevationType(); if (type == TokenElevationType.Default) textElevated.Text = "N/A"; else if (type == TokenElevationType.Full) textElevated.Text = "True"; else if (type == TokenElevationType.Limited) textElevated.Text = "False"; } catch (Exception ex) { textElevated.Text = "(" + ex.Message + ")"; } try { TokenWithLinkedToken tokWLT = new TokenWithLinkedToken(thandle); tokWLT.GetToken().Dispose(); } catch { buttonLinkedToken.Visible = false; } try { bool virtAllowed = thandle.IsVirtualizationAllowed(); bool virtEnabled = thandle.IsVirtualizationEnabled(); if (virtEnabled) textVirtualized.Text = "Enabled"; else if (virtAllowed) textVirtualized.Text = "Disabled"; else textVirtualized.Text = "Not Allowed"; } catch (Exception ex) { textVirtualized.Text = "(" + ex.Message + ")"; } try { using (TokenHandle tokenSource = _object.GetToken(TokenAccess.QuerySource)) { var source = tokenSource.GetSource(); textSourceName.Text = source.SourceName.TrimEnd('\0', '\r', '\n', ' '); long luid = source.SourceIdentifier.QuadPart; textSourceLUID.Text = "0x" + luid.ToString("x"); } } catch (Exception ex) { textSourceName.Text = "(" + ex.Message + ")"; } // "Advanced" try { var statistics = thandle.GetStatistics(); textTokenType.Text = statistics.TokenType.ToString(); textImpersonationLevel.Text = statistics.ImpersonationLevel.ToString(); textTokenId.Text = "0x" + statistics.TokenId.ToString(); textAuthenticationId.Text = "0x" + statistics.AuthenticationId.ToString(); textMemoryUsed.Text = Utils.FormatSize(statistics.DynamicCharged); textMemoryAvailable.Text = Utils.FormatSize(statistics.DynamicAvailable); } catch (Exception ex) { textTokenType.Text = "(" + ex.Message + ")"; } try { var groups = thandle.GetGroups(); _groups = new TokenGroupsList(groups); foreach (var group in groups) group.Dispose(); _groups.Dock = DockStyle.Fill; tabGroups.Controls.Add(_groups); } catch (Exception ex) { tabGroups.Text = "(" + ex.Message + ")"; } try { var privileges = thandle.GetPrivileges(); for (int i = 0; i < privileges.Length; i++) { var privilege = privileges[i]; ListViewItem item = listPrivileges.Items.Add(privilege.Name.ToLower(), privilege.Name, 0); item.BackColor = GetAttributeColor(privilege.Attributes); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, GetAttributeString(privilege.Attributes))); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, privilege.DisplayName)); } } catch (Exception ex) { tabPrivileges.Text = "(" + ex.Message + ")"; } } } catch (Exception ex) { tabControl.Visible = false; Label errorMessage = new Label(); errorMessage.Text = ex.Message; this.Padding = new Padding(15, 10, 0, 0); this.Controls.Add(errorMessage); } if (!OSVersion.HasUac) { labelElevated.Enabled = false; textElevated.Enabled = false; textElevated.Text = ""; labelVirtualization.Enabled = false; textVirtualized.Enabled = false; textVirtualized.Text = ""; } if (tabControl.TabPages[Properties.Settings.Default.TokenWindowTab] != null) tabControl.SelectedTab = tabControl.TabPages[Properties.Settings.Default.TokenWindowTab]; ColumnSettings.LoadSettings(Properties.Settings.Default.PrivilegeListColumns, listPrivileges); listPrivileges.AddShortcuts(); }