有关带身份验证的Azure API应用程序(客户端流程)和Windows 10 Universal App的问题。 我们在重用用户的访问令牌以调用网关和api应用程序时遇到问题。用户登录后我们抓住了 来自AppServiceClient CurrentUser的AuthenticationToken,并将其保存为PasswordCredentials以供重用。
来自.NET客户端(https://azure.microsoft.com/en-us/documentation/articles/app-service-api-dotnet-consume/)的Azure应用服务中的Cunsume API应用程序示例 底部有一个例子,但是无法使Access Token工作,我们得到UnAuthorized。有没有其他示例显示如何重用访问令牌(客户端流)或任何完成相同的尝试??
这不起作用
var userID = credential.UserName;
var appServiceClient = new AppServiceClient(GATEWAY);
var providerAccessTokenJSON = new JObject();
providerAccessTokenJSON["access_token"] = vault.Retrieve(AUTH_PROVIDER,userID).Password;
var appServiceUser = await appServiceClient.LoginAsync(AUTH_PROVIDER, providerAccessTokenJSON);
var vAPI = appServiceClient.CreateJCBSApiApp();
var vSol = vAPI.Solutions.Get();
foreach (var s in vSol)
{
var vID = s.ID;
var vText = s.Title;
}
在服务器范围的示例正常工作后,我只想重用在Azure教程中描述为客户端流的令牌。
- 更新 -
这是我的身份验证方法并存储用户令牌
嗨,谢谢你抽出时间回答。是的,令牌在凭证存储区中,我对它进行了比较并且是相同的。我是现代的,如果我使用错误的访问令牌。
private async Task<IAppServiceUser> AuthenticateAsync()
{
await _appServiceClient.Logout();
while (_appServiceClient.CurrentUser == null)
{
await _appServiceClient.LoginAsync(AUTH_PROVIDER,false);
}
var vUserID = _appServiceClient.CurrentUser;
credential = new PasswordCredential(AUTH_PROVIDER,
vUserID.UserId, vUserID.AuthenticationToken.ToString());
vault.Add(credential);
return _appServiceClient.CurrentUser;
}
由于