2016-07-26 57 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

感謝您的建議。最後,我的問題不在於身份驗證,而在於移動客戶端。我會用適當的代碼發佈一個新問題。 –

相關問題