我正在使用我的组织的 Azure数据目录。我不是目录的创建者/管理员/所有者,但我可以从Web界面注册/删除目录。
我想使用Azure数据目录的rest API。是否有可能获得我的许可? 我已经按照https://msdn.microsoft.com/en-us/library/mt428033.aspx的所有步骤编写了以下代码:
class Program
{
static void Main(string[] args)
{
string url = "https://api.azuredatacatalog.com/catalogs/DefaultCatalog/search/search?searchTerms=My_Server&count=10&startPage=1&api-version=2016-03-30";
HttpWebRequest request = System.Net.WebRequest.Create(url) as System.Net.HttpWebRequest;
Console.WriteLine(AccessToken().CreateAuthorizationHeader());
try
{
WebResponse response = request.GetResponse();
Console.WriteLine(response.ContentLength);
}
catch (Exception e)
{
Console.WriteLine(e);
}
Console.ReadKey();
}
static AuthenticationResult AccessToken()
{
string resourceUri = "https://datacatalog.azure.com";
string clientId = "my-client-id";
string redirectUri = "my-redirect-uri";
string authorityUri = "https://login.windows.net/common/oauth2/authorize";
AuthenticationContext authContext = new AuthenticationContext(authorityUri);
return authContext.AcquireToken(resourceUri, clientId, new Uri(redirectUri), PromptBehavior.RefreshSession);
}
}
当我尝试从API运行搜索时,出现以下错误:
System.Net.WebException:远程服务器返回错误:(401) 未经授权。在System.Net.HttpWebRequest.GetResponse()处 HRBIADCAPI.Program.Main(String [] args)in c:\ users \ naghimir \ documents \ visual studio 2015 \ Projects \ HRBIADCAPI \ HRBIADCAPI \ Program.cs:第32行
现在我认为问题在于我没有访问为读/写数据目录而创建的客户端程序(我在Azure数据工厂中执行过),但文档中也没有该步骤。
我是否需要成为所有者,或者是否可以请求所有者授权使用Azure数据目录API?