我创建了一个暴露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
我无法弄清楚下一步该尝试什么。
答案 0 :(得分:2)
您需要在门户中打开“应用程序日志记录”,然后查看服务器端日志。简短版本是令牌不被接受。这可能是因为它已过期或因为服务器端存在配置错误。但是,在您查看服务器端日志之前,您将无法分辨。
请参阅Enable diagnostics logging for web apps in Azure App Service。