PowerBI身份验证C#

PowerBI身份验证C#,c#,azure,active-directory,oauth-2.0,powerbi,C#,Azure,Active Directory,Oauth 2.0,Powerbi,我想知道是否有人可以帮助我,我有一个电源bi的问题。我试图做的是将一些数据推送到Power BI中。我发现很难找到一种方法,如果用户可以输入用户名和密码,然后我就可以将数据推送到Power BI帐户中 我被困在获取访问令牌的第一个障碍上。我只是保留了一个不好的要求。我也尝试过开始使用dotnet,但由于一些奇怪的原因,我也无法开始工作 给出的错误是:远程服务器返回错误:(401)未经授权 注册为Web应用程序 public class PowerBICreds { public stri

我想知道是否有人可以帮助我,我有一个电源bi的问题。我试图做的是将一些数据推送到Power BI中。我发现很难找到一种方法,如果用户可以输入用户名和密码,然后我就可以将数据推送到Power BI帐户中

我被困在获取访问令牌的第一个障碍上。我只是保留了一个不好的要求。我也尝试过开始使用dotnet,但由于一些奇怪的原因,我也无法开始工作

给出的错误是:远程服务器返回错误:(401)未经授权

注册为Web应用程序

public class PowerBICreds
{
    public string resourceUri  { get; set; }
    public string clientID     { get; set; }
    public string grantType    { get; set; }
    public string username     { get; set; }
    public string password     { get; set; }
    public string scope        { get; set; }
    public string clientSecret { get; set; }
    public string loginAddress { get; set; }
    public string baseurl      { get; set; }
}

public static string AccessToken(PowerBICreds Creds)
{

    StringBuilder Httpbody = new StringBuilder();
    Httpbody.Append("resource=" + HttpUtility.UrlEncode(Creds.resourceUri));
    Httpbody.Append("&client_id=" + HttpUtility.UrlEncode(Creds.clientID));
    Httpbody.Append("&grant_type=" + HttpUtility.UrlEncode(Creds.grantType));
    Httpbody.Append("&username=" + HttpUtility.UrlEncode(Creds.username));
    Httpbody.Append("&password=" + HttpUtility.UrlEncode(Creds.password));
    Httpbody.Append("&scope=" + HttpUtility.UrlEncode(Creds.scope));
    Httpbody.Append("&client_secret=" + HttpUtility.UrlEncode(Creds.clientSecret));

    using (WebClient web = new WebClient())
    {
        web.Headers.Add("client-request-id", Guid.NewGuid().ToString());
        web.Headers.Add("return-client-request-id", "true");

        string jsonstring = web.UploadString(Creds.loginAddress, Httpbody.ToString());

        dynamic result = JsonConvert.DeserializeObject(jsonstring);

        try
        {
            return result.access_token;
        }
        catch
        { 


        }
        return null;
    }
} 
当我尝试使用示例演示如何在此处使用Mircosoft提供的Power BI API时进行更新

其他技术信息: 相关ID:f1281ec2-4e09-41e6-8847-3acfd3eb7922 时间戳:2015-12-04 22:48:58Z
AADSTS65005:客户端应用程序已请求访问资源“”。此请求失败,因为客户端未在其requiredResourceAccess列表中指定此资源

您在使用我们的示例应用程序时遇到的错误可能意味着您在AAD注册的应用程序没有请求对Power BI的任何权限。尝试使用我们的新应用程序注册页面。如果您只想将数据推送到Power BI中,您只需要数据集读/写权限。

几个问题可以帮助我们更好地了解您的问题。1) 您收到的详细错误消息是什么?2) 你是如何注册你的应用程序的?它是客户端应用程序还是web应用程序?好的,这可以实现,但在我创建应用程序时,应用程序没有显示在azure门户中,我如何查看它们?如果你使用注册时使用的同一帐户登录azure门户,你应该在azure广告部分的某处看到这些应用程序。如果找不到旧的应用程序,您可以随时创建新的应用程序。@JoshCaplan MSFT嗨,Josh!使用dev.powerbi.com/apps,我只能注册“工作”或“学生”帐户,但我是gmail的ISV。我有这个帐户的azure订阅。我可以创建power bi工作区集合。我想应该可以在Azure portal中注册我的应用程序,以获得Power BI的权限
AAD
->
应用程序注册
,然后我想这些权限应该添加到应用程序注册清单中,但是。。。但是应该添加什么?好的,我知道了:)(这并不容易…)您需要至少有一个具有power bi订阅的组织帐户-否则您无法通过所需的访问获得power bi服务。还有一件事需要考虑到,比如一些与帐户相关的东西不能通过新的Azure门户获得,应该通过­
Classic
portal完成