我目前正在使用.net Web应用程序,该应用程序使用我通过RestSharp查询的GCP的automl视觉模型服务,问题是一段时间后我开始从模型中获得未经授权的响应,我目前正在通过运行>
gcloud auth application-default print-access-token
在CMD中,手动在请求中复制和粘贴令牌,如下所示:
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Bearer " + "I paste it here" );
request.AddJsonBody(new {
payload = new {
image = new
{
imageBytes = base64
}
}
});
在C#中有什么方法可以自动执行此操作吗? 如果没有,在此模型中进行身份验证的正确方法是什么?
答案 0 :(得分:2)
最好使用Google的.NET身份验证库来以编程方式管理OAuth流程和凭据使用。然后,您可以退回以对该API进行REST调用。
https://cloud.google.com/docs/authentication/production#auth-cloud-implicit-csharp
建议:创建一个服务帐户(具有适当的权限),并将其用于身份验证,而不是您正在执行的用户帐户。
很遗憾,Google似乎没有为AuthML for .NET提供云客户端库。您应该通过在issuetracker
上发布问题来扰乱Google Engineering的工作答案 1 :(得分:0)
我可以使用此NuGet Package
这就像使用此代码一样简单,以防将来有人需要它:
GoogleAutoMLVisionClient automlClient = new GoogleAutoMLVisionClient("<My credentials.json>");
ICollection<PredictResult> automlResponses = automlClient.Predict("My endpoint:predict", file.OpenReadStream()).Result.payload;
foreach(PredictResult automlResult in automlResponses)
{
Debug.WriteLine("Name: " + automlResult.displayName + "Score:" + automlResult.classification.score.ToString());
}