private NMSLoginDTO GetClaimsInfo(string jwtToken) { NMSLoginDTO loginInfo = new NMSLoginDTO(); var jwtHandler = new JwtSecurityTokenHandler(); var jwtInput = jwtToken; //Check if readable token (string is in a JWT format) var readableToken = jwtHandler.CanReadToken(jwtInput); if (readableToken != true) { throw new Exception("Invalid Token"); } if (readableToken == true) { var jwtSecurityToken = jwtHandler.ReadJwtToken(jwtInput); var claims = jwtSecurityToken.Claims; loginInfo.FullName = claims.Where(x => x.Type == "FullName").Select(x => x.Value).FirstOrDefault(); loginInfo.UserId = Convert.ToInt32(claims.Where(x => x.Type == "UserId").Select(x => x.Value).FirstOrDefault()); loginInfo.SessionKey = claims.Where(x => x.Type == "SessionKey").Select(x => x.Value).FirstOrDefault(); var data = claims.Where(x => x.Type == "MetaData").Select(x => x.Value).FirstOrDefault(); var metaData = JsonConvert.DeserializeObject <List <MetaDataDTO> >(data); loginInfo.MetaData = metaData; } return(loginInfo); }
public static async Task <NMSLoginDTO> GetNMSLoginDetails(string loginId, string password) { NMSLoginDTO loginDTO = new NMSLoginDTO(); string api = "http://10.3.12.117/api/User/LoginMMS/"; SigninDTO signin = new SigninDTO(); signin.Login = loginId; signin.Password = password; string postJson = JsonConvert.SerializeObject(signin); StringContent content = new StringContent(postJson, Encoding.UTF8, "application/json"); string responseBody = string.Empty; using (var client = new HttpClient()) { var response = await client.PostAsync(api, content); response.EnsureSuccessStatusCode(); responseBody = await response.Content.ReadAsStringAsync(); } if (responseBody != null) { var data = JObject.Parse(responseBody); if (data != null) { if (Convert.ToBoolean(data["IsSuccess"].ToString()) == true && Convert.ToInt32(data["Data"]["UserId"].ToString()) > 0) { var dataSize = ((JArray)data["Data"]["MetaData"]).Count; loginDTO.FullName = data["Data"]["FullName"].ToString(); loginDTO.UserId = Convert.ToInt32(data["Data"]["UserId"].ToString()); loginDTO.SessionKey = data["Data"]["SessionKey"].ToString(); List <MetaDataDTO> metaDataList = new List <MetaDataDTO>(); for (int i = 0; i < dataSize; i++) { MetaDataDTO metaData = new MetaDataDTO(); metaData.MetaDataId = Convert.ToInt32(data["Data"]["MetaData"][i]["MetaDataId"].ToString()); metaData.MetaName = data["Data"]["MetaData"][i]["MetaName"].ToString(); metaData.MetaTypeId = Convert.ToInt32(data["Data"]["MetaData"][i]["MetaTypeId"].ToString()); metaData.MetaValue = data["Data"]["MetaData"][i]["MetaValue"].ToString(); metaDataList.Add(metaData); } loginDTO.MetaData = metaDataList; } } } return(loginDTO); }