Exemple #1
0
        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);
        }