在 Azure 网站中授权 Google 分析请求

Authorize Google Analytics Request in Azure Website

我正在尝试从托管在 Azure 网站中的 WEB API 控制器调用 Google Analytics API。

我的代码是这样的:

            var certificate = new X509Certificate2(path, "notasecret", X509KeyStorageFlags.Exportable);

            var credentials = new ServiceAccountCredential(
               new ServiceAccountCredential.Initializer("XXXXXXXXXXXXXXXXXXXXXX@developer.gserviceaccount.com")
               {
                   Scopes = new[] { AnalyticsService.Scope.AnalyticsReadonly }
               }.FromCertificate(certificate));

            Service = new AnalyticsService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credentials,
                ApplicationName = "yoLearn"
            });

我认为路径设置正确:

Server.MapPath("~/Content/yoLearn-995f8379d7e4.p12")

问题是,如果我将标志从 Exportable 更改为 MachineKeySet,则会引发此异常:

但是如果我让 Exportable 标记,网站会发生这种情况:

如果有人能在这里帮助我...我很生气,只想从 azure 网站查询 google 分析!!

此致

这救了我...我必须向证书的构造函数添加一些标志。

var certificate = new X509Certificate2(path, "notasecret", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

成功了,身份验证运行得很好