2016-07-26 1 views
0

나는 api를 공개하는 하늘빛 모바일 앱을 만들었습니다. Microsoft 계정 인증을 위해 모바일 앱을 등록했습니다. 모바일 응용 프로그램은 Windows 계정에 로그인 한 후 우체부 또는 Microsoft Edge에서 액세스 할 때 작동합니다.
모바일 앱은 범용 Windows 앱의 백엔드입니다. 나는 상용어 예제 (Add Authentication to UWA)를 따랐다. 사이트에 로그인하는 코드가 잘 작동합니다 (저장된 내 자격 증명을 검색하거나 Microsoft 계정 서버에 로그인). 자격 증명은 MobileServiceClient 인스턴스의 CurrentUser에 저장됩니다.권한이 없습니다 Windows로 돌아 가기 Azure 모바일 앱의 유니버셜 앱

이것은 컨트롤러 중 하나의 예입니다.

[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의 응답으로 쿼리 문자열입니다 = 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을 참조하십시오.

+0

제안 해 주셔서 감사합니다. 결국 내 문제는 인증이 아니라 모바일 클라이언트와 관련이 있습니다. 적절한 코드를 사용하여 새로운 질문을 올리겠습니다. –