2014-10-23 4 views
2

Web API 2를 사용하여 OData 기반 웹 백엔드를 만들었습니다. 컨트롤러에서 AuthorizeAttribute를 사용하여 실제로 잘 작동합니다.양식 게시로 OAuth 무기명 토큰 유효성 검사

표준 html 양식과 제출을 통해 파일을 업로드하고 싶습니다.

일반적으로 OData 요청의 헤더에서 전달되는 OAuth 토큰을 숨겨진 입력 필드로 전달합니다.

질문 : 컨트롤러에서 어떻게 확인합니까?

+0

[승인]을 사용하여 이미 컨트롤러에있는 토큰의 유효성을 검사하고 싶습니까? 죄송합니다. 질문을 이해할 수 없습니다. –

+0

아니요. 토큰은 일반적으로는 헤더와 같이 전달되지만 숨겨진 필드는 전달되지 않습니다. [Authorize]는 표준 제출을 사용하는 표준 양식의 컨트롤러에있을 수 없습니다. – geekboyUK

답변

4

토큰의 보호를 해제 한 다음 주체가 있는지 확인하고 인증 된 경우 (티켓 IsAuthenticated를 확인하십시오) "티켓"에서 보호를 해제해야합니다. 귀하의 컨트롤러 내에서 아래 코드를 사용하십시오 :

string token = "Your token goes here"; 
Microsoft.Owin.Security.AuthenticationTicket ticket = Startup.OAuthBearerOptions.AccessTokenFormat.Unprotect(token); 
+0

감사합니다. 예상했던 것보다 훨씬 더 간단합니다. – geekboyUK

+1

@geekboyUK이 (가) 귀하의 문제를 해결해 주셨습니다. –

+1

Unprotect 함수는 만료 된 토큰을 반환하므로 토큰이 만료되지 않았는지 확인해야합니다 (예 :'ticket.Properties.ExpiresUtc> DateTime.UtcNow' –