2016-07-26 29 views
0

我创建了一个暴露api的azure移动应用程序。我已经注册了Microsoft帐户身份验证的移动应用程序。当我登录到我的Windows帐户后,当我从邮递员甚至Microsoft边缘访问它时,移动应用程序正在工作。
移动应用程序是通用Windows应用程序的后端。我遵循了样板微软示例(Add Authentication to UWA)。登录网站的代码运行良好(它可以检索我存储的凭据或者让我登录到Microsoft帐户服务器)。凭证存储在MobileServiceClient实例的CurrentUser中。未经授权从Azure移动应用程序返回到Windows通用应用程序

这是一个控制器的例子。

[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是查询字符串作为字典对象 变种响应=等待client.InvokeApiAsync(myuri,System.Net.Http .HttpMethod.Get,param);

生成的请求是正确的,似乎有正确的标题。我可以将它们复制到邮递员中,并得到正确的回复。但是从我的客户端(从视觉工作室运行)我没有被授权。这是从客户端发送的请求正文:

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 

我不知道接下来要尝试什么。

+0

在日志的帮助下,浪费了大量的时间来修复那些没有损坏的东西,我想我已经找到了我真正的问题。 –

回答

2

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

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

+0

感谢您的建议。最后,我的问题不在于身份验证,而在于移动客户端。我会用适当的代码发布一个新问题。 –

相关问题