未授权从Azure移动应用程序返回到Windows Universal应用程序

时间:2016-07-26 13:27:43

标签: c# azure-mobile-services windows-10-universal

我创建了一个暴露api的天蓝色移动应用程序。我已注册移动应用程序以进行Microsoft帐户身份验证。我登录Windows帐户后,当我从邮递员甚至微软边缘访问移动应用程序时,它正在运行 移动应用程序是通用Windows应用程序的后端。我按照样例微软示例(Add Authentication to UWA)进行了操作。登录该站点的代码运行良好(它要么检索我存储的凭据,要么让我登录到Microsoft帐户服务器)。凭据存储在MobileServiceClient实例的CurrentUser中。

这是其中一个控制器的示例。

    [MobileAppController]
    [Authorize]
    public class TeamsController : ApiController
    {
    private GameNoteContext db = new GameNoteContext();
    [HttpGet, Route("api/Teams")]
    // GET: api/Teams
    public IQueryable<Team> GetTeams()
    {
                   return db.Teams;
    }

客户端使用以下代码调用api:     // myuri是控制器,param是查询字符串作为字典对象      var response = await client.InvokeApiAsync(myuri,System.Net.Http.HttpMethod.Get,param);

生成的请求正确并且似乎具有正确的标头。我可以将它们复制到邮递员中,我得到了正确的答复。但是从我的客户端(从visual studio运行)我未经授权。以下是从客户端发送的请求正文:

  X-ZUMO-FEATURES: AT,QS
  X-ZUMO-INSTALLATION-ID: theidiscorrect
  X-ZUMO-AUTH: atokenappearshere
  Accept: application/json
  User-Agent: ZUMO/2.1
  User-Agent: (lang=Managed; os=Windows Store; os_version=--; arch=X86; version=2.1.40707.0)
  X-ZUMO-VERSION: ZUMO/2.1 (lang=Managed; os=Windows Store; os_version=--; arch=X86; version=2.1.40707.0)
  ZUMO-API-VERSION: 2.0.0
  Accept-Encoding: gzip

我无法弄清楚下一步该尝试什么。

1 个答案:

答案 0 :(得分:2)

您需要在门户中打开“应用程序日志记录”,然后查看服务器端日志。简短版本是令牌不被接受。这可能是因为它已过期或因为服务器端存在配置错误。但是,在您查看服务器端日志之前,您将无法分辨。

请参阅Enable diagnostics logging for web apps in Azure App Service