---
id: object/page/9807
type: object
title: Page 9807 "User Card"
summary: Page 9807 "User Card" in Base Application (System.Security.User). 4 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC24.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  last_changed: "24"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 4f61bc08afc9bb9298798fbaacbc8bc3af78228be2f5191b99dda48784fd7358
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Modules/System/User/UserCard.Page.al
    title: src/Layers/W1/BaseApp/Modules/System/User/UserCard.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/ui-define-granular-permissions
    title: Define granular permissions
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/ui-how-users-permissions
    title: Create users according to licenses
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/ui-legacy-user-groups
    title: Manage permissions through user groups (legacy)
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/ui-security-groups
    title: Control Access Using Security Groups
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/ui-define-granular-permissions
    - https://learn.microsoft.com/dynamics365/business-central/ui-how-users-permissions
    - https://learn.microsoft.com/dynamics365/business-central/ui-legacy-user-groups
    - https://learn.microsoft.com/dynamics365/business-central/ui-security-groups
  objects: []
  features: []
  topics:
    - topic/business-central/development-and-administration/administration-tasks-in-business-central/manage-access-to-business-central
    - topic/business-central/development-and-administration/administration-tasks-in-business-central/manage-access-to-business-central/grant-user-permissions
    - topic/dev-itpro/development/troubleshooting/troubleshooting-in-the-client
    - topic/dev-itpro/integration/integrating-with-infrastructure-services
    - topic/dev-itpro/security-privacy-and-compliance/security/application-security
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: page
object_id: 9807
name: User Card
namespace: System.Security.User
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/ui-define-granular-permissions.md
  - docs/learn-smb-docs/business-central/ui-how-users-permissions.md
  - docs/learn-smb-docs/business-central/ui-legacy-user-groups.md
  - docs/learn-smb-docs/business-central/ui-security-groups.md
counts:
  fields: 0
  procedures: 20
  events: 1
  subscribers: 0
  controls: 24
  actions: 6
relations:
  out: 0
  referenced_by: 0
  pages: 1
  extended_by: 2
  event_subscribers: 0
  calls: 12
  called_by: 1
  implements: 0
---

# Page 9807 "User Card"

> Page 9807 "User Card" in Base Application (System.Security.User). 4 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC24.

Base Application · System.Security.User · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Modules/System/User/UserCard.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | User Card |
| SourceTable | User |
| PageType | Card |
| Permissions | tabledata "User Property" = m |

## Fields on this page

Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control's own, else the bound field's (marked).

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| General | User Security ID | `Rec."User Security ID"` | Specifies an ID that uniquely identifies the user. This value is generated automatically and should not be changed. |
|  | User Name | `Rec."User Name"` | Specifies the user's name. If the user is required to present credentials when starting the client, this is the name that the user must present. |
|  | Full Name | `Rec."Full Name"` | Specifies the full name of the user. |
|  | License Type | `Rec."License Type"` | Specifies the type of license that applies to the user. |
|  | Status | `Rec.State` | Specifies whether the user can access companies in the current environment. This field does not reflect any changes in Microsoft 365 Accounts. |
|  | Expiry Date | `Rec."Expiry Date"` | Specifies a date past which the user will no longer be authorized to log on to the Windows client. |
|  | Contact Email | `Rec."Contact Email"` | Specifies the user's email address. |
|  | Telemetry ID | `TelemetryUserID` | Specifies a telemetry ID which can be used for troubleshooting purposes. |
| Microsoft 365 | Authentication Email | `Rec."Authentication Email"` | Specifies the account that this user signs into Microsoft 365 or SharePoint with. |
|  | Application ID | `ApplicationID` | Specifies the client ID of the Microsoft Microsoft Entra application when authenticating web-service calls. This field is only relevant when the Business Central user is used for web services. |
|  | Mapped To Exchange Identifier | `HasExchangeIdentifier` | Specifies whether the user is mapped to a Microsoft Exchange identifier, which enables the user to access Business Central from Exchange applications (such as Outlook) without having to sign-in. |
|  | Authentication Status | `AuthenticationStatus` | Specifies the user's status for Microsoft 365 authentication. When you start to create a user, the status is Disabled. After you specify an authentication email address for the user, the status changes to Inactive. After the user logs on successfully, the status changes to Active. |
|  | Microsoft 365 User Account state | `Microsoft365State` | Specifies whether the user's Microsoft 365 Account is enabled. |
| Web Service | Web Service Access Key | `WebServiceID` | Specifies a generated key that Dynamics 365 web service applications can use to authenticate to Dynamics 365 services. Choose the AssistEdit button to generate a key. |
|  | Web Service Expiry Date | `WebServiceExpiryDate` | Specifies an expiration date for the web services access key. |
| Windows Authentication | Windows Security ID | `Rec."Windows Security ID"` | Specifies the Windows Security ID of the user. This is only relevant for Windows authentication. |
|  | Windows User Name | `WindowsUserName` | Specifies the name of a valid Active Directory user, using the format domain\username. |
| Access Control Service Authentication | ACS Access Status | `ACSStatus` | Specifies the user's status for ACS authentication. When you start creating a user, the status is Disabled. After you create a user, the status changes to Pending. After the user logs on successfully, the status changes to Enabled. |
| Business Central Password Authentication | Password | `Password` | Specifies an initial password for the user. To sign in to the client, the user must provide the name that is specified in the User Name field and this password. |
|  | User must change password at next login | `Rec."Change Password"` | Specifies if the user will be prompted to change the password at next login. |
| Content | User Permission Sets | part [Page 9801 "User Subform"](../page/9801.md) | — |
|  | Licenses | part [Page 9826 "User Plans FactBox"](../page/9826.md) | — |
| FactBoxes | Inherited Permission Sets | part [Page 9821 "Inherited Permission Sets Part"](../page/9821.md) | — |
|  | Security Group Memberships | part [Page 9848 "User Security Groups Part"](../page/9848.md) | — |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Authentication | ACS Setup | Set up Access Control Service authentication, such as generating an authentication key that the user can use to connect to Azure. |  |
|  | Change Password | Change the user's password if the user connects using password authentication. |  |
|  | Change Web Service Key | Set up the key that web services use to access your data, and then specify the key on the user card for the relevant user accounts. |  |
|  | Clear Web Service Access Key | By clearing the Web Service Access Key field on the User Card page, you can ensure that access keys cannot be used to authenticate from another service. |  |
|  | Delete Exchange Identifier Mapping | Delete the document exchange mapping for the current user. |  |
| History | Sent Emails | View a list of emails that you have sent to this user. |  |

## Events published

- `OnValidateAuthenticationOnAfterCalcShowConfirmDisableUser(InitialState: Option; User: Record User; var ShowConfirmDisableUser: Boolean)` (integration)

## Procedures

- `RemoveWebServiceAccessKey(UserSecurityId: Guid): Boolean`
- `DeleteUserIsAllowed(User: Record User): Boolean`
- `ManageUsersIsAllowed(): Boolean`
- `SetWebServiceAccressKey(): Boolean`

Plus 15 local procedures.

## Triggers

OnAfterGetRecord, OnDeleteRecord, OnInit, OnInsertRecord, OnNewRecord, OnOpenPage, OnQueryClosePage

## Pages and codeunits on this table

- [Page 9800 "Users"](../page/9800.md) (card page)

## Extended by

- [Page extension 9807 "User Card Perf. Factboxes"](../pageextension/9807.md)
- [Page extension 9808 "User Card Customization"](../pageextension/9808.md)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 9801 "Identity Management"](../codeunit/9801.md) (12 calls: `OnAfterGetRecord → GetACSStatus`, `OnAfterGetRecord → GetAuthenticationStatus`, `OnAfterGetRecord → GetWebServiceExpiryDate`, …)
- [Codeunit 152 "User Permissions"](../codeunit/152.md) (2 calls: `OnAfterGetRecord → CanManageUsersOnTenant`, `SetPermissionsVisibility → CanManageUsersOnTenant`)
- [Codeunit 457 "Environment Information"](../codeunit/457.md) (2 calls: `OnAfterGetRecord → IsSaaS`, `OnOpenPage → IsSaaS`)
- [Codeunit 9027 "Plan Ids"](../codeunit/9027.md) (2 calls: `IsUserDelegated → GetDelegatedAdminPlanId`, `IsUserDelegated → GetHelpDeskPlanId`)
- [Codeunit 9800 "User"](../codeunit/9800.md) (2 calls: `ValidateState → ValidateState`, `ValidateUserName → ValidateUserName`)
- [Codeunit 8714 "Audit Log"](../codeunit/8714.md) (1 call: `ValidateAuthentication → LogAuditMessage`)
- [Codeunit 9000 "Users - Create Super User"](../codeunit/9000.md) (1 call: `OnPremAskFirstUserToCreateSuper → (object)`)
- [Codeunit 9005 "Url Helper"](../codeunit/9005.md) (1 call: `ManageUsersIsAllowed → GetOfficePortalUrl`)
- [Codeunit 9012 "Azure AD Graph"](../codeunit/9012.md) (1 call: `OnAfterGetRecord → IsGraphUserAccountEnabled`)
- [Codeunit 9016 "Azure AD Plan"](../codeunit/9016.md) (1 call: `IsUserDelegated → IsPlanAssignedToUser`)
- [Codeunit 9026 "User Login Time Tracker"](../codeunit/9026.md) (1 call: `DeleteUserIsAllowed → UserLoggedInEnvironment`)
- [Codeunit 9810 "Password Dialog Management"](../codeunit/9810.md) (1 call: `EditNavPassword → OpenSecretPasswordDialog`)

## Called by

- [Codeunit 1392 "Monitor Sensitive Field"](../codeunit/1392.md) (2 calls: `OpenUserCard → (object)`, `ShowUserCardIfMissingContactEmail → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24

## Documented on Microsoft Learn

- [Define granular permissions](https://learn.microsoft.com/dynamics365/business-central/ui-define-granular-permissions)
- [Create users according to licenses](https://learn.microsoft.com/dynamics365/business-central/ui-how-users-permissions)
- [Manage permissions through user groups (legacy)](https://learn.microsoft.com/dynamics365/business-central/ui-legacy-user-groups)
- [Control Access Using Security Groups](https://learn.microsoft.com/dynamics365/business-central/ui-security-groups)

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "page", object_name: "User Card")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
