This example shows how to configure the Dashboard control so that it works in the multi-user environment.
You can identify a user in the current session and return the following user-specific content:
Custom dashboard storage allows you to specify which dashboards the user can access, edit, and save.
API: IEditableDashboardStorage Interface
Files to review: CustomDashboardStorage.cs
Custom data source storage allows you to specify which data sources are available to the user.
API: IDataSourceStorage Interface
Files to review: CustomDataSourceStorage.cs
A custom data source schema provider allows you to filter the data source for different users to show only a part of the data source.
Files to review: CustomDBSchemaProvider.cs
A custom connection string provider allows you to specify connection strings depending on the user's access rights.
API: IDataSourceWizardConnectionStringsProvider Interface
Files to review: CustomConnectionStringProvider.cs
The Web Dashboard control can operate in ViewerOnly
mode for unauthorized users. To do this, handle the DashboardConfigurator.VerifyClientTrustLevel event and set the e.ClientTrustLevel
property to Restricted
. This setting prevents inadvertent or unauthorized modifications of dashboards stored on a server. You can find more information in the following help section: Security Considerations - Working Mode Access Rights.
API: DashboardConfigurator.VerifyClientTrustLevel Event
Files to review: Dashboard.cshtml and DashboardConfig.cs
You can limit access to sensitive information depending on the current user's ID. Every custom store/provider reads the HttpContext.Current.Session["CurrentUser"]
value from session state.
When the application starts, you see the Index view with a ComboBox in which you can select a user. When you click the Sign in button, the ID of the selected user is passed to the HttpContext.Current.Session["CurrentUser"]
variable and you are redirected to the Dashboard view. In this view, the Web Dashboard control displays the features available to the selected user. Below is a table that illustrates the user IDs and their associated rights in this example:
Role | Dashboard Storage | DataSource Storage | ConnectionString Provider | DBSchema Provider | Working Mode | Create/Edit |
---|---|---|---|---|---|---|
Admin | dashboard1_admin, dashboard2_admin | SqlDataSource, JsonDataSource | Northwind, CarsXtraScheduling | All (Categories, Products, Cars,...) | Designer, Viewer | Yes |
User | dashboard1_user | SqlDataSource | CarsXtraScheduling | Cars | Designer, Viewer | No |
Guest | dashboard1_guest | - | - | - | ViewerOnly | - |
Unauthorized | - | - | - | - | ViewerOnly | - |
- Dashboard for MVC - How to load different data based on the current user
- Dashboard for MVC - How to use separate server-side settings for different views
- Dashboard for MVC - How to load and save dashboards from/to a database
- Dashboard for ASP.NET Core - How to implement multi-tenant Dashboard architecture
- Dashboard for ASP.NET Core - How to load different data based on the current user
- Dashboard for ASP.NET Core - How to implement authentication
(you will be redirected to DevExpress.com to submit your response)