Azure API应用程序 - Windows 10 Universal App中的客户端流程验证

时间:2015-09-15 13:51:53

标签: api azure windows-10

有关带身份验证的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;
        }

由于

0 个答案:

没有答案