标签: sharepointframework

AadHttpClient无法从使用AAD保护的Azure功能中检索数据

我正在尝试从用C#编写的自定义Azure函数中检索一些数据

[EnableCors]
[FunctionName("Authenticate")]
public static IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get")]HttpRequestMessage req, TraceWriter log)
{
    var privateKey = new SHA512CryptoServiceProvider();
    var res = req.CreateResponse(req.Headers);
    res.Headers.Add("Access-Control-Allow-Credentials", "true");
    res.Headers.Add("Access-Control-Allow-Origin", req.Headers.GetValues("Origin").FirstOrDefault());
    return (IActionResult)res;
}
Run Code Online (Sandbox Code Playgroud)

在Azure功能的配置中,我启用了CORS,其中包含一条规则(https:// localhost:4321).这是我本地托管的SharePoint工作台的正确URL.

我按照微软的教程,但是我收到以下错误信息:

sp-http.js:1570 Uncaught (in promise) Error: This operation cannot be performed until the AadTokenProvider is initialized.
    at AadTokenProvider.getToken (sp-http.js:1570)
    at sp-http.js:2414
    at ServiceScope.whenFinished (sp-loader-assembly_en-us.js:9861)
    at sp-http.js:2410
    at new Promise (<anonymous>)
    at AadHttpClient.fetch (sp-http.js:2409)
    at AadHttpClient.get (sp-http.js:2433)
    at AdalWebPart.render (AdalWebPart.ts:23)
    at AdalWebPart.BaseClientSideWebPart._renderWithAccessibleTitle (sp-webpart-base.js:1535)
    at sp-webpart-base.js:1369
Run Code Online (Sandbox Code Playgroud)

这是我用来尝试获取数据的代码:

export …
Run Code Online (Sandbox Code Playgroud)

cors typescript azure-active-directory azure-functions sharepointframework

5
推荐指数
0
解决办法
370
查看次数