Κοινή χρήση μέσω


Εκμάθηση: Ενσωμάτωση μιας αναφοράς Power BI σε μια εφαρμογή για τους πελάτες σας

Σε αυτή την εκμάθηση, θα μάθετε πώς μπορείτε να ενσωματώσετε μια αναφορά Power BI σε μια εφαρμογή .NET 5.0, ως μέρος της λύσης ενσωμάτωση για τους πελάτες σας (γνωστή και ως δεδομένα ανήκουν στην εφαρμογή). Σε μια λύση ενσωμάτωσης για τους πελάτες σας, οι χρήστες της εφαρμογής σας δεν χρειάζεται να εισέλθουν στο Power BI ή να έχουν μια άδεια χρήσης Power BI.

Σε αυτό το εκπαιδευτικό βοήθημα, θα μάθετε πώς να ενσωματώνετε:

  • Μια αναφορά Power BI.
  • Σε μια εφαρμογή ενσωμάτωσης για τους πελάτες σας.
  • Με τη χρήση μιας κύριας υπηρεσίας.
  • Χρησιμοποιώντας το .NET 5.0.
  • Με τη Microsoft.Identity.Web βιβλιοθήκη (αυτή η βιβλιοθήκη υποστηρίζεται επίσης στο .NET Core).

Σημείωμα

Η πλήρης λύση που χρησιμοποιείται σε αυτό το πρόγραμμα εκμάθησης είναι διαθέσιμη από το αποθετήριο δεδομένων GitHub DOTNET5-AppOwnsData-Tutorial .

Προαπαιτούμενα στοιχεία

Πόροι

Σε αυτό το πρόγραμμα εκμάθησης, χρησιμοποιείτε:

  • API αναφορών REST του Power BI, για να ενσωματώσετε τη διεύθυνση URL και να ανακτήσετε το διακριτικό ενσωμάτωσης.

  • Βιβλιοθήκη ελέγχου ταυτότητας Web της Microsoft.

  • API προγράμματος-πελάτη ενσωματωμένης ανάλυσης του Power BI, για την ενσωμάτωση της αναφοράς.

Μέθοδος

Για να ενσωματώσετε περιεχόμενο Power BI σε μια λύση ενσωμάτωσης για τους πελάτες σας, ακολουθήστε τα εξής βήματα:

  1. Ρυθμίστε τις παραμέτρους της εφαρμογής Σας Microsoft Entra και της κύριας υπηρεσίας.

  2. Λάβετε τις τιμές παραμέτρων ενσωμάτωσης.

  3. Προσθέστε τα απαιτούμενα πακέτα NuGet.

  4. Ενεργοποίηση ελέγχου ταυτότητας από την πλευρά του διακομιστή.

  5. Δημιουργήστε την πλευρά του προγράμματος-πελάτη της εφαρμογής σας.

  6. Εκτελέστε την εφαρμογή σας.

Βήμα 1 - Ρυθμίστε τις παραμέτρους της εφαρμογής σας Microsoft Entra και της κύριας υπηρεσίας

Σε αυτή την εκμάθηση, χρησιμοποιείτε μια κύρια υπηρεσία για τον έλεγχο ταυτότητας της εφαρμογής web σας σε σχέση με το αναγνωριστικό Microsoft Entra. Χρειάζεστε επίσης μια εφαρμογή Microsoft Entra, η οποία σας δίνει τη δυνατότητα να δημιουργήσετε ένα διακριτικό Microsoft Entra. Χρησιμοποιώντας το διακριτικό Microsoft Entra, η εφαρμογή web σας μπορεί να καλέσει power BI REST API και να ενσωματώσει στοιχεία Power BI, όπως αναφορές, πίνακες εργαλείων και πλακίδια.

Ακολουθήστε τις οδηγίες κύριας υπηρεσίας για να δημιουργήσετε μια εφαρμογή Microsoft Entra και να ενεργοποιήσετε την κύρια υπηρεσία της εφαρμογής για εργασία με το περιεχόμενό σας Power BI.

Βήμα 2 - Λάβετε τις τιμές παραμέτρων ενσωμάτωσης

Για να ενσωματώσετε την αναφορά σας, χρειάζεστε τις ακόλουθες τιμές:

Αναγνωριστικό τομέα και μισθωτή

Εάν δεν γνωρίζετε το αναγνωριστικό τομέα ή μισθωτή, ανατρέξτε στο θέμα Εύρεση του αναγνωριστικού μισθωτή του Microsoft Entra και του κύριου ονόματος τομέα.

Σημείωμα

Για να ενσωματώσετε περιεχόμενο για έναν χρήστη σε διαφορετικό μισθωτή (χρήστης-επισκέπτης), πρέπει να προσαρμόσετε την authorityUri παράμετρο.

Αναγνωριστικό πελάτη

Για να λάβετε το αναγνωριστικό GUID προγράμματος-πελάτη (επίσης γνωστό ως αναγνωριστικό εφαρμογής), ακολουθήστε τα εξής βήματα:

  1. Συνδεθείτε στο Microsoft Azure.

  2. Κάντε αναζήτηση για Καταχωρήσεις εφαρμογών και επιλέξτε τη σύνδεση Καταχωρήσεις εφαρμογών .

  3. Επιλέξτε την εφαρμογή Microsoft Entra που χρησιμοποιείτε για την ενσωμάτωση του περιεχομένου σας Power BI.

  4. Από την ενότητα Επισκόπηση , αντιγράψτε το ΑΝΑΓΝΩΡΙΣΤΙΚΌ GUID εφαρμογής (πρόγραμμα-πελάτης).

Μυστικός κωδικός προγράμματος-πελάτη

Για να λάβετε τον μυστικό κωδικό προγράμματος-πελάτη, ακολουθήστε τα εξής βήματα:

  1. Συνδεθείτε στο Microsoft Azure.

  2. Κάντε αναζήτηση για Καταχωρήσεις εφαρμογών και επιλέξτε τη σύνδεση Καταχωρήσεις εφαρμογών .

  3. Επιλέξτε την εφαρμογή Microsoft Entra που χρησιμοποιείτε για την ενσωμάτωση του περιεχομένου σας Power BI.

  4. Στην περιοχή Διαχείριση, επιλέξτε Πιστοποιητικά και μυστικά.

  5. Στην περιοχή Μυστικά προγράμματος-πελάτη, επιλέξτε Νέος μυστικός κωδικός προγράμματος-πελάτη.

  6. Στο αναδυόμενο παράθυρο Προσθήκη μυστικού κωδικού προγράμματος-πελάτη, καταχωρήστε μια περιγραφή για τον μυστικό κωδικό της εφαρμογής σας, επιλέξτε πότε λήγει ο μυστικός κωδικός της εφαρμογής και επιλέξτε Προσθήκη.

  7. Από την ενότητα Μυστικοί κωδικό προγράμματος-πελάτη, αντιγράψτε τη συμβολοσειρά στη στήλη Τιμή του μυστικού κωδικού της εφαρμογής που μόλις δημιουργήσατε. Η τιμή του μυστικού κωδικού προγράμματος-πελάτη είναι το αναγνωριστικό προγράμματος-πελάτη.

Σημείωμα

Όταν εμφανιστεί για πρώτη φορά, βεβαιωθείτε ότι έχετε αντιγράψει την τιμή του μυστικού κωδικού προγράμματος-πελάτη. Αφού απομακρυνθείτε από αυτή τη σελίδα, ο μυστικός κωδικός προγράμματος-πελάτη θα κρυφτεί και δεν θα μπορείτε να ανακτήσετε την τιμή του.

Αναγνωριστικό χώρου εργασίας

Για να λάβετε το αναγνωριστικό GUID χώρου εργασίας, ακολουθήστε τα εξής βήματα:

  1. Πραγματοποιήστε είσοδο στην υπηρεσία Power BI.

  2. Ανοίξτε την αναφορά που θέλετε να ενσωματώσετε.

  3. Αντιγράψτε το GUID από τη διεύθυνση URL. Το GUID είναι ο αριθμός μεταξύ /groups/ και /reports/.

    A screenshot showing workspace ID GUID in the Power B I service U R L

Σημείωμα

Για να λάβετε το αναγνωριστικό χώρου εργασίας μέσω προγραμματισμού, χρησιμοποιήστε το API Λήψη ομάδων .

Αναγνωριστικό αναφοράς

Για να λάβετε το αναγνωριστικό GUID αναφοράς, ακολουθήστε τα εξής βήματα:

  1. Πραγματοποιήστε είσοδο στην υπηρεσία Power BI.

  2. Ανοίξτε την αναφορά που θέλετε να ενσωματώσετε.

  3. Αντιγράψτε το GUID από τη διεύθυνση URL. Το GUID είναι ο αριθμός μεταξύ των στοιχείων /reports/ και /ReportSection.

    A screenshot showing report ID GUID in the Power B I service U R L

Σημείωμα

Για να λάβετε το αναγνωριστικό αναφοράς μέσω προγραμματισμού, χρησιμοποιήστε το API Λήψη αναφορών σε ομάδα .

Βήμα 3 - Προσθέστε τα απαιτούμενα πακέτα NuGet

Προτού ξεκινήσετε, πρέπει να προσθέσετε τα Microsoft.Identity.Webπακέτα , και Microsoft.PowerBI.Api NuGet στην εφαρμογή σας.

Προσθέστε τα απαιτούμενα πακέτα NuGet στην εφαρμογή σας:

  • Στο VS Code, ανοίξτε ένα τερματικό και πληκτρολογήστε τον ακόλουθο κώδικα.

  • Στο Visual Studio, μεταβείτε στα Εργαλεία>NuGet Διαχείριση πακέτου> Διαχείριση πακέτου Κονσόλα και πληκτρολογήστε τον ακόλουθο κώδικα.

dotnet add package Microsoft.Identity.Web
dotnet add package Microsoft.Identity.Web.UI
dotnet add package Microsoft.PowerBI.Api

Βήμα 4 - Ενεργοποίηση ελέγχου ταυτότητας από την πλευρά του διακομιστή

Ενεργοποιήστε τον έλεγχο ταυτότητας στην πλευρά του διακομιστή στην εφαρμογή σας, δημιουργώντας ή τροποποιώντας τα αρχεία στον παρακάτω πίνακα.

File Χρήση
Startup.cs Προετοιμασία της υπηρεσίας Microsoft.Identity.Web ελέγχου ταυτότητας
appsettings.json Ρύθμιση παραμέτρων λεπτομερειών ελέγχου ταυτότητας
PowerBiServiceApi.cs Λήψη του διακριτικού Microsoft Entra και ενσωμάτωση μετα-δεδομένων
HomeController.cs Διαβίβαση δεδομένων ενσωμάτωσης ως μοντέλου στην προβολή

Ρύθμιση παραμέτρων του αρχείου εκκίνησης για υποστήριξη Microsoft.Identity.Web

Τροποποιήστε τον κώδικα στο Startup.cs για να προετοιμάσετε σωστά την υπηρεσία ελέγχου ταυτότητας που παρέχεται από Microsoft.Identity.Webτο .

Προσθέστε τον παρακάτω κώδικα στο αρχείο Startup.cs της εφαρμογής σας.

Σημείωμα

Ο κώδικας στην ConfigureServices επιτυγχάνει πολλά σημαντικά πράγματα:

  1. Η κλήση για AddMicrosoftWebAppCallsWebApi ρύθμιση παραμέτρων της Βιβλιοθήκης ελέγχου ταυτότητας της Microsoft για την απόκτηση διακριτικών πρόσβασης (διακριτικά Microsoft Entra).
  2. Η κλήση για AddInMemoryTokenCaches ρύθμιση παραμέτρων ενός cache διακριτικών που χρησιμοποιεί η βιβλιοθήκη ελέγχου ταυτότητας της Microsoft για την προσωρινή αποθήκευση διακριτικών πρόσβασης και διακριτικών ανανέωσης στο παρασκήνιο.
  3. Η κλήση για services.AddScoped(typeof(PowerBiServiceApi)) ρύθμιση παραμέτρων της PowerBiServiceApi κλάσης ως κλάσης υπηρεσίας που μπορεί να προστεθεί σε άλλες κλάσεις με χρήση έγχυσης εξάρτησης.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Identity.Web;
using Microsoft.Identity.Web.UI;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using AppOwnsData.Services;

namespace AppOwnsData
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services) {

    services.AddMicrosoftIdentityWebAppAuthentication(Configuration)
            .EnableTokenAcquisitionToCallDownstreamApi()
            .AddInMemoryTokenCaches();

            services.AddScoped(typeof(PowerBiServiceApi));

            services.AddControllersWithViews(options => {
                var policy = new AuthorizationPolicyBuilder()
                    .RequireAuthenticatedUser()
                    .Build();
                options.Filters.Add(new AuthorizeFilter(policy));
            });
            services.AddRazorPages()
                    .AddMicrosoftIdentityUI();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You might want to change this for production scenarios. See https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
                endpoints.MapRazorPages();
            });
        }
    }
}

Δημιουργία αρχείου λεπτομερειών ελέγχου ταυτότητας

Σε αυτό το εκπαιδευτικό βοήθημα, το αρχείο appsettings.json περιέχει ευαίσθητες πληροφορίες, όπως το αναγνωριστικό προγράμματος-πελάτη και ο μυστικός κωδικός προγράμματος-πελάτη. Για λόγους ασφαλείας, δεν συνιστούμε να διατηρείτε αυτές τις πληροφορίες στο αρχείο ρυθμίσεων. Κατά την ενσωμάτωση στην εφαρμογή σας, εξετάστε ένα πιο ασφαλές εργαλείο, όπως το Azure Key Vault, για την προστασία ευαίσθητων πληροφοριών.

  1. Στο έργο σας, δημιουργήστε ένα νέο αρχείο και ονομάστε το appsettings.json.

  2. Προσθέστε τον παρακάτω κώδικα στο appsettings.json:

    {
     "AzureAd": {
       "Instance": "https://login.microsoftonline.com/",
       "Domain": "yourtenant.onMicrosoft.com",
       "TenantId": "",
       "ClientId": "",
       "ClientSecret": "",
       "CallbackPath": "/signin-oidc",
       "SignedOutCallbackPath": "/signout-callback-oidc"
     },
     "PowerBi": {
       "ServiceRootUrl": "https://api.powerbi.com/"
     },
     "Logging": {
       "LogLevel": {
         "Default": "Information",
         "Microsoft": "Warning",
         "Microsoft.Hosting.Lifetime": "Information"
       }
     },
    "AllowedHosts": "*"
    }
    
  3. Συμπληρώστε τις τιμές παραμέτρων ενσωμάτωσης που λαμβάνονται από το Βήμα 2 - Λήψη των τιμών παραμέτρων ενσωμάτωσης.

Σημείωμα

Στον προηγούμενο κώδικα, η PowerBi:ServiceRootUrl παράμετρος προστίθεται ως τιμή προσαρμοσμένης ρύθμισης παραμέτρων για την παρακολούθηση της διεύθυνσης URL βάσης για τον Υπηρεσία Power BI. Όταν προγραμματίζετε με βάση τις Υπηρεσία Power BI στο δημόσιο cloud της Microsoft, η διεύθυνση URL είναι https://api.powerbi.com/. Ωστόσο, η διεύθυνση URL ρίζας για την Υπηρεσία Power BI είναι διαφορετική σε άλλα cloud, όπως το cloud για δημόσιους οργανισμούς. Επομένως, η τιμή προσαρμοσμένης ρύθμισης παραμέτρων αποθηκεύεται ως τιμή ρύθμισης παραμέτρων έργου, ώστε να μπορείτε να την αλλάξετε ανάλογα με τις ανάγκες.

Λάβετε το διακριτικό πρόσβασης του Microsoft Entra και καλέστε τον Υπηρεσία Power BI

Για να ενσωματώσετε περιεχόμενο Power BI όπως αναφορές και πίνακες εργαλείων, η εφαρμογή σας πρέπει να λάβει ένα διακριτικό Microsoft Entra. Για να λάβετε το διακριτικό, χρειάζεστε ένα αντικείμενο ρύθμισης παραμέτρων.

Ο κώδικας σε αυτή την ενότητα χρησιμοποιεί το μοτίβο έγχυσης εξάρτησης .NET Core. Όταν η κλάση σας χρειάζεται να χρησιμοποιήσει μια υπηρεσία, μπορείτε να προσθέσετε μια παράμετρο κατασκευής για αυτήν την υπηρεσία. Ο χρόνος εκτέλεσης .NET Core φροντίζει για τη διαβίβαση της παρουσίας υπηρεσίας κατά τον χρόνο εκτέλεσης. Στην περίπτωση αυτή, η κατασκευή εγχέει μια παρουσία της υπηρεσίας ρύθμισης παραμέτρων .NET Core χρησιμοποιώντας την IConfiguration παράμετρο, η οποία χρησιμοποιείται για την ανάκτηση της τιμής ρύθμισης παραμέτρων από το PowerBi:ServiceRootUrl appsettings.json. Η ITokenAcquisition παράμετρος, η οποία ονομάζεται tokenAcquisition, περιέχει μια αναφορά στην υπηρεσία ελέγχου ταυτότητας της Microsoft που παρέχεται από τη Microsoft.Identity.Web βιβλιοθήκη. Η ITokenAcquisition παράμετρος χρησιμοποιείται για την απόκτηση διακριτικών πρόσβασης από το αναγνωριστικό Microsoft Entra.

Το RequiredScopes πεδίο περιέχει έναν πίνακα συμβολοσειρών που περιέχει ένα σύνολο δικαιωμάτων με ανάθεση που υποστηρίζονται από το Υπηρεσία Power BI API. Όταν η εφαρμογή πραγματοποιεί κλήση στο δίκτυο για να αποκτήσει ένα διακριτικό Microsoft Entra, μεταβιβάζει αυτό το σύνολο δικαιωμάτων με ανάθεση, έτσι ώστε το Αναγνωριστικό Microsoft Entra να μπορεί να τα συμπεριλάβει στο διακριτικό πρόσβασης που επιστρέφει.

Σημείωμα

Βεβαιωθείτε ότι η εφαρμογή Σας Microsoft Entra έχει ρυθμιστεί με τις εμβέλειες που απαιτούνται από την εφαρμογή web σας. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Αλλαγή των δικαιωμάτων της εφαρμογής σας Microsoft Entra.

  1. Στο έργο της εφαρμογής σας, δημιουργήστε έναν νέο φάκελο με τίτλο Υπηρεσίες.

  2. Στον φάκελο Υπηρεσίες, δημιουργήστε ένα νέο αρχείο με τίτλο PowerBiServiceApi.cs.

  3. Προσθέστε τον παρακάτω κώδικα στο PowerBiServiceApi.cs.

    using System;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Identity.Web;
    using Microsoft.Rest;
    using Microsoft.PowerBI.Api;
    using Microsoft.PowerBI.Api.Models;
    using Newtonsoft.Json;
    
    namespace AppOwnsData.Services {
    
        // A view model class to pass the data needed to embed a single report
        public class EmbeddedReportViewModel {
            public string Id;
            public string Name;
            public string EmbedUrl;
            public string Token;
        }
    
        public class PowerBiServiceApi {
    
            private ITokenAcquisition tokenAcquisition { get; }
            private string urlPowerBiServiceApiRoot { get; }
    
            public PowerBiServiceApi(IConfiguration configuration, ITokenAcquisition tokenAcquisition) {
                this.urlPowerBiServiceApiRoot = configuration["PowerBi:ServiceRootUrl"];
                this.tokenAcquisition = tokenAcquisition;
            }
    
            public const string powerbiApiDefaultScope = "https://analysis.windows.net/powerbi/api/.default";
    
            // A method to get the Azure AD token (also known as 'access token')
            public string GetAccessToken() {
                return this.tokenAcquisition.GetAccessTokenForAppAsync(powerbiApiDefaultScope).Result;
            }
    
            public PowerBIClient GetPowerBiClient() {
                var tokenCredentials = new TokenCredentials(GetAccessToken(), "Bearer");
                return new PowerBIClient(new Uri(urlPowerBiServiceApiRoot), tokenCredentials);
            }
    
            public async Task<EmbeddedReportViewModel> GetReport(Guid WorkspaceId, Guid ReportId) {
    
                PowerBIClient pbiClient = GetPowerBiClient();
    
                // Call the Power BI service API to get the embedding data.
                var report = await pbiClient.Reports.GetReportInGroupAsync(WorkspaceId, ReportId);
    
                // Generate a read-only embed token for the report.
                var datasetId = report.DatasetId;
                var tokenRequest = new GenerateTokenRequest(TokenAccessLevel.View, datasetId);
                var embedTokenResponse = await pbiClient.Reports.GenerateTokenAsync(WorkspaceId, ReportId, tokenRequest);
                var embedToken = embedTokenResponse.Token;
    
                // Return the report embedded data to caller.
                return new EmbeddedReportViewModel {
                    Id = report.Id.ToString(),
                    EmbedUrl = report.EmbedUrl,
                    Name = report.Name,
                    Token = embedToken
                };
            }
    
        }
    }
    

Τροποποίηση του αρχείου HomeController.cs

Σε αυτό το παράδειγμα κώδικα, χρησιμοποιείτε προσθήκη εξάρτησης για να τροποποιήσετε το αρχείο HomeController.cs . Ακολουθώντας ένα προηγούμενο βήμα, ρυθμίσατε την PowerBiServiceApi κλάση ως υπηρεσία καλώντας services.AddScoped τη ConfigureServices μέθοδο . Με αυτόν τον κώδικα, προσθέτετε μια PowerBiServiceApi παράμετρο στην κατασκευή και ο χρόνος εκτέλεσης .NET Core δημιουργεί μια PowerBiServiceApi παρουσία και τη διαβιβάζει στην κατασκευή.

Από τον φάκελο Ελεγκτές , ανοίξτε το αρχείο HomeController.cs και προσθέστε τον ακόλουθο κώδικα σε αυτό:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using AppOwnsData.Models;
using AppOwnsData.Services;

namespace AppOwnsData.Controllers
{
    [Authorize]
    public class HomeController : Controller
    {
        private PowerBiServiceApi powerBiServiceApi;

        public HomeController(PowerBiServiceApi powerBiServiceApi)
        {
            this.powerBiServiceApi = powerBiServiceApi;
        }

        [AllowAnonymous]
        public IActionResult Index()
        {
            return View();
        }

        public async Task<IActionResult> Embed() {

            // Replace these two GUIDs with the workspace ID and report ID you recorded earlier.
            Guid workspaceId = new Guid("11111111-1111-1111-1111-111111111111");
            Guid reportId = new Guid("22222222-2222-2222-2222-222222222222");

            var viewModel = await powerBiServiceApi.GetReport(workspaceId, reportId);

            return View(viewModel);
        }

        [AllowAnonymous]
        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
}

Βήμα 5 - Δημιουργήστε την πλευρά του προγράμματος-πελάτη της εφαρμογής σας

Για την υλοποίηση από την πλευρά του προγράμματος-πελάτη, πρέπει να δημιουργήσετε ή να τροποποιήσετε τα αρχεία που παρατίθενται στον παρακάτω πίνακα:

File Χρήση
embed.js Περιέχει τον κώδικα JavaScript από την πλευρά του προγράμματος-πελάτη
Embed.cshtml Περιέχει το μοντέλο αντικειμένου εγγράφου (DOM) της εφαρμογής σας και ένα DIV για την ενσωμάτωση της αναφοράς

Δημιουργία κοντέινερ για την ενσωματωμένη αναφορά σας

Σε αυτό το εκπαιδευτικό βοήθημα, θα δημιουργήσετε το αρχείο Embed.cshtml , το οποίο έχει ένα div στοιχείο που είναι ένα κοντέινερ για την ενσωματωμένη αναφορά σας και τρεις δέσμες ενεργειών.

  1. Στον φάκελο Προβολή/αρχικής σελίδας, δημιουργήστε ένα αρχείο με την ονομασία Embed.cshtml.

  2. Προσθέστε τον παρακάτω κώδικα στο αρχείο Embed.cshtml .

    @model AppOwnsData.Services.EmbeddedReportViewModel;
    
    <div id="embed-container" style="height:800px;"></div>
    
    @section Scripts {
    
        <!-- powerbi.min.js is the JavaScript file that loads the client-side Power BI JavaScript API library.
        Make sure that you're working with the latest library version.
        You can check the latest library available in https://cdnjs.com/libraries/powerbi-client -->
        <script src="https://cdn.jsdelivr.net/npm/powerbi-client@2.18.0/dist/powerbi.min.js"></script>
    
        <!-- This script creates a JavaScript object named viewModel which is accessible to the JavaScript code in embed.js. -->
        <script> 
            var viewModel = {
                reportId: "@Model.Id",
                embedUrl: "@Model.EmbedUrl",
                token: "@Model.Token"
            }; 
        </script>
    
        <!-- This script specifies the location of the embed.js file -->
        <script src="~/js/embed.js"></script>
    }
    

Προσθήκη JavaScript από την πλευρά του προγράμματος-πελάτη για ενσωμάτωση της αναφοράς σας

Για να ενσωματώσετε περιεχόμενο Power BI, πρέπει να δημιουργήσετε ένα αντικείμενο ρύθμισης παραμέτρων. Για να μάθετε περισσότερα σχετικά με τη δημιουργία του αντικειμένου ρύθμισης παραμέτρων, ανατρέξτε στο θέμα Ενσωμάτωση αναφοράς.

Σε αυτή την εκμάθηση, θα δημιουργήσετε ένα αρχείο JavaScript με το όνομα embed.js με ένα αντικείμενο ρύθμισης παραμέτρων για την ενσωμάτωση της αναφοράς σας που χρησιμοποιεί τη μεταβλητή models.

Μπορείτε να αρχικοποιήσετε models χρησιμοποιώντας μια κλήση στο window['powerbi-client'].models. Η models μεταβλητή χρησιμοποιείται για τον ορισμό τιμών ρύθμισης παραμέτρων όπως models.Permissions.All, models.TokenType.Aadκαι models.ViewMode.View.

Η powerbi.embed συνάρτηση χρησιμοποιεί το models αντικείμενο ρύθμισης παραμέτρων για να ενσωματώσει την αναφορά σας.

  1. Στον φάκελο wwwroot/js, δημιουργήστε ένα αρχείο με την ονομασία embed.js.

  2. Προσθέστε τον παρακάτω κώδικα στο αρχείο embed.js .

    $(function () {
    
        // 1 - Get DOM object for the div that's the report container.
        var reportContainer = document.getElementById("embed-container");
    
        // 2 - Get the report embedding data from the view model.
        var reportId = window.viewModel.reportId;
        var embedUrl = window.viewModel.embedUrl;
        var token = window.viewModel.token
    
        // 3 - Embed the report by using the Power BI JavaScript API.
        var models = window['powerbi-client'].models;
    
        var config = {
          type: 'report',
          id: reportId,
          embedUrl: embedUrl,
          accessToken: token,
          permissions: models.Permissions.All,
          tokenType: models.TokenType.Embed,
          viewMode: models.ViewMode.View,
          settings: {
            panes: {
              filters: { expanded: false, visible: true },
              pageNavigation: { visible: false }
            }
          }
        };
    
        // Embed the report and display it within the div container.
        var report = powerbi.embed(reportContainer, config);
    
        // 4 - Add logic to resize the embed container on a window resize event.
        var heightBuffer = 12;
        var newHeight = $(window).height() - ($("header").height() + heightBuffer);
        $("#embed-container").height(newHeight);
        $(window).resize(function () {
          var newHeight = $(window).height() - ($("header").height() + heightBuffer);
          $("#embed-container").height(newHeight);
        });
    
      });
    

Βήμα 6 - Εκτέλεση της εφαρμογής σας

Αφού ακολουθήσετε όλα τα προηγούμενα βήματα, είστε έτοιμοι να εκτελέσετε την εφαρμογή σας. Δοκιμάστε να εκτελέσετε την εφαρμογή σας και πειραματιστείτε με τον τρόπο ενσωμάτωσης της αναφοράς σας Power BI. Μπορείτε να χρησιμοποιήσετε τα API προγράμματος-πελάτη ενσωματωμένης ανάλυσης του Power BI για να βελτιώσετε την εφαρμογή σας χρησιμοποιώντας API από την πλευρά του προγράμματος-πελάτη.

Σημαντικό

Εάν χρησιμοποιήσατε δωρεάν δοκιμαστικά διακριτικά ενσωμάτωσης για την ανάπτυξη, πρέπει να αγοράσετε ένα σύνολο εκχωρημένων πόρων για παραγωγή. Μέχρι να αγοραστεί ένα σύνολο εκχωρημένων πόρων, το πλαίσιο δωρεάν δοκιμαστικής έκδοσης εξακολουθεί να εμφανίζεται στο επάνω μέρος της ενσωματωμένης αναφοράς.

Όταν η εφαρμογή σας είναι έτοιμη, μπορείτε να μετακινήσετε την ενσωματωμένη εφαρμογή σας στην παραγωγή.