public async Task <IHttpActionResult> GetUserSessionByAccessToken(GetUserSessionByAccessTokenInput input) { GetAccessTokenByUserNameOutput output = new GetAccessTokenByUserNameOutput(); var user = await this.AppUserManager.FindByNameAsync(input.Username); if (user != null) { output.CurrentUserID = user.Id; UserReturnModel userSession = this.TheModelFactory.Create(user); output.UserSession = new UserReturnModel(); output.UserSession = userSession; } return(Ok(output)); }
public GetUserSessionByAccessTokenOutput GetUserSessionByAccessToken(string accessToken) { try { var handler = new JwtSecurityTokenHandler(); var token = handler.ReadJwtToken(accessToken).Payload.ToList(); var username = token.Where(a => a.Key == "unique_name").Select(b => b.Value).FirstOrDefault(); //string username = new System.Collections.Generic.Mscorlib_DictionaryDebugView<string, object>(token.Payload).Items[1].Value; //var accessTokenObj = _CT.aToken.Deserialize(accessToken); GetUserSessionByAccessTokenInput input = new GetUserSessionByAccessTokenInput(); input.Username = username.ToString(); RestHTTP http = new RestHTTP(); RestSharp.RestRequest req = new RestSharp.RestRequest("api/accounts/GetUserSessionByAccessToken", RestSharp.Method.POST); req.AddHeader("Authorization", "Bearer " + input.AccessToken); req.AddObject(input); RestSharp.RestClient client = new RestSharp.RestClient(WebConfigurationManager.AppSettings["AuthServerAPI"]); var response = client.Execute <GetUserSessionByAccessTokenOutput>(req); if (response.StatusCode == System.Net.HttpStatusCode.OK) { GetUserSessionByAccessTokenOutput result = JsonConvert.DeserializeObject <GetUserSessionByAccessTokenOutput>(response.Content, new ClaimConverter()); result.AccessToken = accessToken; return(result); } else { return(null); } } catch (Exception ex) { throw new Exception(ex.Message); } }