2014-09-22 50 views
0

我有一个Azure移动服务设置,并且已经在线示例进行身份验证。我调用AuthenticationContext.AcquireToken并获取一个令牌。然后,我使用以下设置标题:使用aad的Azure移动服务“不支持'承载'HTTP身份验证方案”错误

HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”,AquireAccessToken());

但是我得到一个401返回,并且在Azure日志中,我得到了'The'承载'HTTP认证方案不受支持“。我错过了什么?

回答

0

如果您正在使用服务来调用移动服务,为什么不使用应用程序密钥而不是登录过程?

您可以在您的要求设置一个头,像这样:

HttpClient.DefaultRequestHeaders.Add("X-ZUMO-APPLICATION", "<YOUR APP KEY>"; 

你可以从你的门户应用的关键。当您在仪表板视图上单击窗口底部的按钮以“管理密钥”。

如果您想要登录为服务,但是如果您需要代表用户登录,那么您需要登录认证路线。您还需要确保各种表和API的权限允许应用程序密钥访问级别。

或者,您可以使用带主密钥的X-ZUMO-MASTER标头获得服务的管理权限。

0

移动服务不支持在授权标头中传递令牌。相反,请考虑使用POST method for the login endpoint。如果需要,移动服务SDK将使其成为登录方法的重载。

您能否评论一下您正在使用的示例?我们的标准"Get Started with Authentication" tutorial显示了如何在不直接处理访问令牌的情况下进行登录。我们也有使用提供商SDK获取令牌并使用上述过载将其传递给移动服务的教程。例如,我们有本教程Microsoft AccountAzure Active Directory

+0

移动服务将从几个不同的应用程序中调用,但我正在使用的第一个服务是一项服务。我正在使用[MSDN示例]中的示例(http://msdn.microsoft.com/zh-cn/library/azure/dn646737.aspx#BKMK_Daemon)。是否有无人值守服务的代码示例?我得到了登录部分,但是如何在通过身份验证的请求上传递authenticationToken?谢谢你的帮助! – jimox 2014-09-23 00:45:55

+0

由于我之前提到的方法而具有移动服务令牌后,您可以在调用服务时将其传递给X-ZUMO-AUTH头。 – mattchenderson 2014-09-23 16:45:11