Forum Discussion

amassip's avatar
amassip
Helper I
9 years ago
Solved

Power BI in ASP Net MVC

Hello,

 

I can display a RDL in an iframe from my own ReportServer  and now I would like to display a report (ASP MVC application) without Azure.

 

On this link https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embedding-Basics

 

"but when using Power BI Embedded the tokens are issued by your own service and are specific to a report"

 

I understand that I don't need Azure but i need an accessToken to display the report...

 

Any idea ? Or Other way than PowerBI-JS ?

 

Thanks

  • Hi,

    you can check this out.You can get the clientID & clientSecret from registering your app here

    I tried and it worked :)

  • AFAIK currently is not possible to hide filter panel or paging panel via REST API. Maybe we can upvote this :).

    I tried using the same access token to embed report using powerbi.js, it didn't work. No console information, just blank screen

     

    We can do it on powerbi.js though, see this link

    Hope it helps

13 Replies

  • Hi,

    you can check this out.You can get the clientID & clientSecret from registering your app here

    I tried and it worked :)

  • eyalc's avatar
    eyalc
    Power BI Team

    Power BI Embedded can be used only as a resource in Azure (you can read on it here)

  • Eric_Zhang's avatar
    Eric_Zhang
    Microsoft Employee

    amassip

     

    I don't exactly understand what your mean "without azure". Both Power BI Service(at least Azure AD) or Power BI Embedded(Power BI workspace collection) are azure based.

    Regarding getting an accessToken in Power BI Embedded, you can check DashboardController.cs in power-bi-embedded-integrate-report-into-web-app. You can explicitly specify when the token would expire, which means you can create a token never expires and use it anywhere in your javascript, though it is not recommended.

    var embedToken = PowerBIToken.CreateReportEmbedToken(this.workspaceCollection, this.workspaceId, report.Id, Convert.ToDateTime("2017-12-31"));

     

  • Eric_Zhang

     

    I want to know if we can display a Power BI in a web app ( such as asp net ) but without Azure. I mean if there is a token that you acquired from the power BI authentification or something like that 

     

    But I think it is not possible, you have to intregate Azure in your project.  

  • Eric_Zhang

     

    For privacy reason I can't publish report but thanks for the suggestion !

     

    runrunrun

     

    Thanks, with your second link and from this link I can get the AccessToken ;)

     

    I connect to my PowerBI account ( AuthorizationCode) then I get the AccessToken and finally I want to display my reports

     

    But I got an error on this line :

     

    using (var response = request.GetResponse() as System.Net.HttpWebResponse)

    Error 403 Forbidden.

     

     

    On the register application power BI page I choose only Read All Reports

     

     

    //Configure Reports request
                System.Net.WebRequest request = System.Net.WebRequest.Create(
                    String.Format("https://api.powerbi.com/beta/myorg//Reports", 
                    baseUri)) as System.Net.HttpWebRequest;
    
                request.Method = "GET";
                request.ContentLength = 0;
                request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken));
    
                //Get Reports response from request.GetResponse()
                using (var response = request.GetResponse() as System.Net.HttpWebResponse) // here

     

    EDIT : problem solve, thanks all !

    • silmar's avatar
      silmar
      Regular Visitor

      Hi I am having the same issue, can get a token, but getting a 403 when I submit.  What was your solution to get past the 403 in the Response?

      • amassip's avatar
        amassip
        Helper I

        Hello

         

        How do you get your token ? From the authorizationcode ( with your powerBI account ) ?

         

        I used this code to get a report :

         

         

        string baseUri = "https://api.powerbi.com/v1.0/myorg/reports";
        string token =  "token";
        //Configure Reports request
        System.Net.WebRequest request = System.Net.WebRequest.Create(
        String.Format("{0}",
        baseUri)) as System.Net.HttpWebRequest;
        request.Method = "GET";
        request.ContentLength = 0;
        request.Headers.Add("Authorization", String.Format("Bearer {0}", token));
        
        using (var response = request.GetResponse() as System.Net.HttpWebResponse)
        {
            //do something..
        }

         

        Given that there was the SSRS's update in January 2017, we can display powerBI in SSRS ( such as RDL ) but is it possible to take this url to display a powerBI report,  i.e : in an iframe ? ( on-premise )

         

         

         

    • runrunrun's avatar
      runrunrun
      Resolver I

      AFAIK currently is not possible to hide filter panel or paging panel via REST API. Maybe we can upvote this :).

      I tried using the same access token to embed report using powerbi.js, it didn't work. No console information, just blank screen

       

      We can do it on powerbi.js though, see this link

      Hope it helps

    • Eric_Zhang's avatar
      Eric_Zhang
      Microsoft Employee

      amassip

       

      PowerBI.js is awesome. However appending "&filterPaneEnabled=false" to a url still works when I test embeding with PowerBI REST API. It is just a little typo, try to drop the l in &filterPanelEnabled=false. :smileywink:

      • daniels's avatar
        daniels
        Frequent Visitor

        Have someone try the filterpane=false and filter by report filters in SSRS 2016 on premise PowerBI reports?