나는 좋은 날을 인증하는 것 신원 (2)를 사용하여 웹 API를 가지고 있고, 내가 AuthTicket
인스턴스에 직렬화 무엇 /Token
엔드 포인트는 매우 유사 내용으로, 반환 내가 요청을 보낼 때, 그리고Identity 2를 사용하는 ASP.NET 웹 API가 보호 된 리소스에 대한 액세스 권한을 부여하지 않는 이유는 무엇입니까?
AccessToken: "averylongtoken"
Expires: {2016/12/12 8:19:22 AM}
ExpiresIn: 1209599
Issued: {2016/11/28 8:19:22 AM}
TokenType: "bearer"
Username: "myusername"
같은 :
var response = await Client.GetAsync("api/appt/3/true", cancellationToken);
및 Client.DefaultRequestHeaders.Authorization
보이는 같은 :
Bearer theSameVeryLongToken
나는 아직도 401 - Not authorized
을 얻습니다. 여기서 무엇이 잘못 될 수 있습니까? 웹 API가 어떻게 든 베어러 토큰을받지 못하거나 제대로 해독하지 못했을 수 있습니까? API에서 중단 점을 설정하고 컨트롤러 조치에서 User
특성을 검사하면 해당 특성은 모두 null 또는 기본값이지만 한 속성은 ClaimsIdentity
이고 속성도 모두 null이거나 기본값이며 해당 Claims
콜렉션이 비어 있습니다 .
수동으로 모든 소유권 주장을 설정해야합니까? 나는 ApplicationOAuthProvider.GrantResourceOwnerCredentials
이 적어도 사용자 이름이나 ID와 같은 클레임을 추가한다고 생각했을 것입니다.
피들러에서 요청을 실행하는 경우 요청 헤더에 토큰이 전달 된 것으로 보입니까? 또한 GrantResourceOwnerCredentials 메소드의 OAuthProvider 클래스에있는 Request Context에서 무엇을 볼 수 있습니까? – Jinish
어떤 이유로 API url로 캡처 된 요청이 표시되지 않습니다. 필터를 호스트'localhost : 51999', 즉 API로 설정하고 클라이언트로부터 게시물 요청을 실행하면 아무 것도 캡처되지 않습니다. 나는'GrantResourceOwnerCredentials'에서 요청 문맥을 보지 못했고'OAuthGrantResourceOwnerCredentialsContext' 만 보았고'/ Token' 끝점에서 호출 된이 메쏘드가 아니기 때문에 사용자를 로그인 할 수 있습니다. 로그인시 나는 인증 토큰과 함께'/ Token'으로부터 좋은 응답을 얻었지만 아직'GrantResourceOwnerCredentials'의 헤더에는 없을 것입니다. – ProfK