2

Web API 용 Visual Studio 템플릿과 함께 제공되는 개별 사용자 계정에서 기본 인증을 사용하고 있습니다. 나는 Angular.js 프런트 엔드에서 API를 소비합니다.웹 API/OWIN 인증 토큰을 사용할 때 추가 정보

놀랍지 만, 나는 성과 이름과 같은 사용자에 대한 추가 정보를 저장해야합니다. 이러한 추가 값을 Register 메서드에 설정하려고합니다.

Q. 사용자 모델을 확장해야합니까, 아니면이 정보를 클레임으로 저장해야합니까?

여분의 코드를 추가하지 않고이 정보가/Token의 응답에서 '자동으로'반환되면 보너스가됩니다.

+1

이 발견 : HTTP : // 유래 .com/questions/26357054/return-more-client-to-the-oauth-bearer-token-generation-and-owin-in –

답변

0

/Token 호출에 대한 응답으로 추가 정보를 반환하기로 결정했습니다. ApplicationOAuthProvider에서

이 (템플릿 프로젝트의 일환 인) 나는 사용자를 전달하는 2 곳에서 CreatePropertiesCreateProperties 및 조정 통화를 변경뿐만 아니라 사용자 이름 :

public static AuthenticationProperties CreateProperties(ApplicationUser user) 
      { 
       var firstNameClaim = user.Claims.FirstOrDefault(c => c.ClaimType == ClaimTypes.GivenName); 
       var lastNameClaim = user.Claims.FirstOrDefault(c => c.ClaimType == ClaimTypes.Surname); 
       var roles = user.Claims.Where(c => c.ClaimType == ClaimTypes.Role).Select(c => c.ClaimValue); 

       IDictionary<string, string> data = new Dictionary<string, string> 
       { 
        { "userName", user.UserName }, 
        {"firstName", firstNameClaim != null ? firstNameClaim.ClaimValue : "" }, 
        {"lastName", lastNameClaim != null ? lastNameClaim.ClaimValue : "" }, 
        {"roles", string.Join(",", roles) } 
       }; 

       return new AuthenticationProperties(data); 
      } 
관련 문제