예제 #1
0
        public static Token extractPaylod(string _token)
        {
            string jsonPayload  = "";
            Token  tokenPayload = null;

            try
            {
                IJsonSerializer   serializer = new JsonNetSerializer();
                IDateTimeProvider provider   = new UtcDateTimeProvider();
                IJwtValidator     validator  = new JwtValidator(serializer, provider);
                IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
                IJwtDecoder       decoder    = new JwtDecoder(serializer, validator, urlEncoder);
                string            secret     = ConfigurationManager.AppSettings["key"].ToString();

                jsonPayload = decoder.Decode(_token, secret, verify: true);

                tokenPayload = serializer.Deserialize <Token>(jsonPayload);

                //Console.WriteLine(json);
            }
            catch (TokenExpiredException)
            {
                Console.WriteLine("Token has expired");
            }
            catch (SignatureVerificationException)
            {
                Console.WriteLine("Token has invalid signature");
            }

            return(tokenPayload);
        }
예제 #2
0
        public ActivationPolicy GetActivationPolicy(long deviceId)
        {
            ActivationPolicy activationPolicy = null;

            bearerToken = new Authentication().GetBearerToken(Scope.Activation, deviceId);
            var url = appSettingsReader.GetValue("serverBase", typeof(string)).ToString() + appSettingsReader.GetValue("actPolicyEndpoint", typeof(string)).ToString();

            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearerToken.AccessToken);
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                httpClient.DefaultRequestHeaders.Add("X-ActivationId", appSettingsReader.GetValue("deviceActivationId", typeof(string)).ToString());

                Console.WriteLine(url);
                HttpResponseMessage response   = httpClient.GetAsync(url).Result;
                IJsonSerializer     serializer = new JsonNetSerializer();

                using (var responseStream = response.Content.ReadAsStreamAsync().Result)
                {
                    if (responseStream == null)
                    {
                        return(null);
                    }
                    using (var streamReader = new StreamReader(responseStream))
                    {
                        var responseContent = streamReader.ReadToEnd();
                        Console.WriteLine(responseContent);
                        activationPolicy = serializer.Deserialize <ActivationPolicy>(responseContent);
                    }
                }
            }
            return(activationPolicy);
        }
예제 #3
0
        public async Task <bool> TrainModel()
        {
            try
            {
                var command = new Command
                {
                    Id       = EnvelopeId.NewId(),
                    To       = Node.Parse("*****@*****.**"),
                    Uri      = new LimeUri("/models"),
                    Method   = CommandMethod.Set,
                    Resource = new ModelTraining()
                };

                var envelopeSerializer = new JsonNetSerializer();
                var commandString      = envelopeSerializer.Serialize(command);

                var httpContent = new StringContent(commandString, Encoding.UTF8, "application/json");

                HttpResponseMessage response = await _client.PostAsync("/commands", httpContent);

                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();

                var envelopeResult = (Command)envelopeSerializer.Deserialize(responseBody);

                return(true);
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine("\nException Caught!");
                Console.WriteLine("Message :{0} ", e.Message);
                return(false);
            }
        }
예제 #4
0
        private async Task <Command> RunCommandAsync(Command command)
        {
            var commandString = _envelopeSerializer.Serialize(command);

            using (var httpContent = new StringContent(commandString, Encoding.UTF8, "application/json"))
            {
                try
                {
                    var response = await _client.PostAsync("/commands", httpContent);

                    response.EnsureSuccessStatusCode();
                    var responseBody = await response.Content.ReadAsStringAsync();

                    return((Command)_envelopeSerializer.Deserialize(responseBody));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("INNER");
                    Console.WriteLine(ex.InnerException);
                    Console.WriteLine();
                    Console.WriteLine();
                    throw;
                }
            }
        }
예제 #5
0
        public void Can_Compression()
        {
            var serialize = new JsonNetSerializer();

            var foo = TestHelper.GetFoo();

            var output1 = new MemoryStream();
            var output2 = new MemoryStream();

            serialize.Serialize(foo, output1);

            var rtl1 = output1.ToArray();

            //compress
            var          gzip = new GZipStream(output2, CompressionLevel.Fastest);
            StreamWriter sw2  = new StreamWriter(gzip);

            serialize.Serialize(foo, sw2);

            sw2.Dispose();
            var rtl2 = output2.ToArray();

            //comparing the size
            Assert.True(rtl2.Length < rtl1.Length);

            //decompress
            var          gzip2 = new GZipStream(new MemoryStream(rtl2), CompressionMode.Decompress);
            StreamReader sr    = new StreamReader(gzip2);
            var          foo2  = serialize.Deserialize <Foo>(sr);

            Assert.Equal(foo.ToString(), foo2.ToString());
        }
예제 #6
0
        public void CanCloneJsonSerializedModel()
        {
            var model = new CloneModel {
                IntProperty    = 1,
                StringProperty = "test",
                ListProperty   = new List <int> {
                    1
                },
                ObjectProperty = new CloneModel {
                    IntProperty = 1
                }
            };

            var serializer   = new JsonNetSerializer();
            var result       = serializer.SerializeToBytes(model);
            var deserialized = serializer.Deserialize <CloneModel>(result);

            Assert.Equal(model.IntProperty, deserialized.IntProperty);
            Assert.Equal(model.StringProperty, deserialized.StringProperty);
            Assert.Equal(model.ListProperty, deserialized.ListProperty);
            var dm = ((JToken)deserialized.ObjectProperty).ToObject <CloneModel>();

            Assert.Equal(((CloneModel)model.ObjectProperty).IntProperty, dm.IntProperty);

            var cloned = deserialized.DeepClone();

            Assert.Equal(model.IntProperty, cloned.IntProperty);
            Assert.Equal(model.StringProperty, cloned.StringProperty);
            Assert.Equal(model.ListProperty, cloned.ListProperty);
            var cdm = ((JToken)cloned.ObjectProperty).ToObject <CloneModel>();

            Assert.Equal(((CloneModel)model.ObjectProperty).IntProperty, cdm.IntProperty);
        }
예제 #7
0
        public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
        {
            var json = actionContext.Request.Content.ReadAsStringAsync().Result;

            bindingContext.Model = _serializer.Deserialize(json);
            return(bindingContext.Model != null);
        }
예제 #8
0
        /// <summary>
        /// 用JWT套件解碼Token
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public static Token DecodeToken(string token)
        {
            try
            {
                IJsonSerializer   serializer = new JsonNetSerializer();
                var               provider   = new UtcDateTimeProvider();
                IJwtValidator     validator  = new JwtValidator(serializer, provider);
                IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
                IJwtAlgorithm     algorithm  = new HMACSHA256Algorithm(); // symmetric
                IJwtDecoder       decoder    = new JwtDecoder(serializer, validator, urlEncoder, algorithm);

                var json    = decoder.Decode(token, cKey, verify: true);
                var payload = serializer.Deserialize <Token>(json);
                return(payload);
            }
            catch (TokenExpiredException ex)
            {
                Log.Error(new Exception("Token has expired", ex));
            }
            catch (SignatureVerificationException ex)
            {
                Log.Error(new Exception("Token has invalid signature", ex));
            }
            return(null);
        }
예제 #9
0
        public void Can_Compression() {
            var serialize = new JsonNetSerializer();

            var foo = TestHelper.GetFoo();

            var output1 = new MemoryStream();
            var output2 = new MemoryStream();

            serialize.Serialize(foo, output1);

            var rtl1 = output1.ToArray();

            //compress
            var gzip = new GZipStream(output2, CompressionLevel.Fastest);
            StreamWriter sw2 = new StreamWriter(gzip);
            serialize.Serialize(foo, sw2);

            sw2.Dispose();
            var rtl2 = output2.ToArray();

            //comparing the size
            Assert.True(rtl2.Length < rtl1.Length);

            //decompress
            var gzip2 = new GZipStream(new MemoryStream(rtl2), CompressionMode.Decompress);
            StreamReader sr = new StreamReader(gzip2);
            var foo2 = serialize.Deserialize<Foo>(sr);

            Assert.Equal(foo.ToString(), foo2.ToString());
        }
예제 #10
0
        /// <summary>
        /// jwt解密
        /// </summary>
        /// <returns></returns>
        public static T JwtDecrypt <T>(HttpControllerContext context)
        {
            IEnumerable <string> values;

            context.Request.Headers.TryGetValues("token", out values);
            string token = values.First();

            try
            {
                IJsonSerializer   serializer = new JsonNetSerializer();
                IDateTimeProvider provider   = new UtcDateTimeProvider();
                IJwtValidator     validator  = new JwtValidator(serializer, provider);
                IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
                IJwtDecoder       decoder    = new JwtDecoder(serializer, validator, urlEncoder);
                var json = decoder.Decode(token, secret, verify: true);
                return(serializer.Deserialize <T>(json));
            }
            catch (TokenExpiredException)
            {
                return(default(T));
            }
            catch (SignatureVerificationException)
            {
                return(default(T));
            }
        }
예제 #11
0
        // POST api/values
        public void Post([FromBody] JObject jsonObject)
        {
            var envelopeSerializer = new JsonNetSerializer();

            var notification = envelopeSerializer.Deserialize(jsonObject.ToString());

            Console.WriteLine("Received Notification");
        }
예제 #12
0
        public List <string> GetIKTokenFromStr(string key)
        {
            string s          = "/db_materialture/_analyze?analyzer=ik_smart&text=" + key;
            var    result     = Client.Get(s);
            var    serializer = new JsonNetSerializer();
            var    list       = serializer.Deserialize(result, typeof(ik)) as ik;

            return(list.tokens.Select(c => c.token).ToList());
        }
예제 #13
0
        public void ShouldHandleHeartbeat()
        {
            using (var heartbeat = new RequestSocket(HeartbeatEndpoint))
            {
                var payload = _eventSerializer.Serializer.Serialize(Heartbeat.Query);

                heartbeat.SendFrame(payload);

                var hasResponse = heartbeat.TryReceiveFrameBytes(TimeSpan.FromMilliseconds(1000), out var responseBytes);

                Assert.IsTrue(hasResponse);

                var response = _serializer.Deserialize <Heartbeat>(responseBytes);

                Assert.IsNotNull(response);
                Assert.AreEqual(HeartbeatType.Pong, response.Type);
            }
        }
        /// <summary>
        /// 将搜索词语用ik分词,返回分词结果的集合
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        private List <string> GetIKTokenFromStr(string key)
        {
            string s          = $"_analyze?analyzer=ik_max_word&pretty=true&text={key}";
            var    result     = _client.Get(s);
            var    serializer = new JsonNetSerializer();
            var    list       = serializer.Deserialize(result, typeof(ik)) as ik;

            return(list.tokens.Select(c => c.token).ToList());
        }
예제 #15
0
        //将语句用ik分词,返回分词结果的集合
        private List <string> GetIKTokenFromStr(string key)
        {
            string s          = "/db_test/_analyze?analyzer=ik";
            var    result     = Client.Post(s, "{" + key + "}");
            var    serializer = new JsonNetSerializer();
            var    list       = serializer.Deserialize(result, typeof(ik)) as ik;

            return(list.tokens.Select(c => c.token).ToList());
        }
예제 #16
0
        public void TestSerialize()
        {
            var serializer   = new JsonNetSerializer();
            var message      = new CacheEventMessage("1", "Beaver0", CacheEventType.Get);
            var data         = serializer.Serialize(message);
            var deserialized = serializer.Deserialize <CacheEventMessage>(data);

            Assert.AreEqual(message, deserialized);
        }
예제 #17
0
        public async Task <DocumentCollection> GetAllDocumentKeysAsync(BucketNamespace bucketNamespace = BucketNamespace.Document)
        {
            string @namespace;

            switch (bucketNamespace)
            {
            case BucketNamespace.Document:
                @namespace = "buckets";
                break;

            case BucketNamespace.Resource:
                @namespace = "resources";
                break;

            case BucketNamespace.Profile:
                @namespace = "profile";
                break;

            default:
                @namespace = "buckets";
                break;
            }

            try
            {
                var command = new Command
                {
                    Id     = EnvelopeId.NewId(),
                    To     = Node.Parse("*****@*****.**"),
                    Uri    = new LimeUri($"/{@namespace}/"),
                    Method = CommandMethod.Get
                };

                var documentSerializer = new DocumentSerializer();

                var envelopeSerializer = new JsonNetSerializer();
                var commandString      = envelopeSerializer.Serialize(command);

                var httpContent = new StringContent(commandString, Encoding.UTF8, "application/json");

                HttpResponseMessage response = await _client.PostAsync("/commands", httpContent);

                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();

                var envelopeResult = (Command)envelopeSerializer.Deserialize(responseBody);

                return(envelopeResult.Resource as DocumentCollection);
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine("\nException Caught!");
                Console.WriteLine("Message :{0} ", e.Message);
                return(null);
            }
        }
        public void GivenAJSONContainingATopicMessage_ICanGetATopicMessageResponseObject()
        {
            var json         = SerializedMessages.ResourceManager.GetString("TopicMessageResponseJSON");
            var serializer   = new JsonNetSerializer();
            var topicMessage = serializer.Deserialize <TopicMessageResponse>(json);


            Assert.NotNull(topicMessage);
            Assert.Equal(-1, topicMessage.MessageId);
        }
예제 #19
0
        protected TMessage Unwrap(BrokeredMessage message)
        {
            var tMessage   = default(TMessage);
            var type       = typeof(TMessage);
            var serializer = new JsonNetSerializer();
            var obj        = serializer.Deserialize(message, type);

            tMessage = (obj as TMessage);

            return(tMessage);
        }
        public void BlazorTypeInfoSerializerTest()
        {
            var serializer = new JsonNetSerializer().ToTyped <Box <DateTime> >();
            var serialized = serializer.Serialize(new Box <DateTime>(DateTime.Now));

            Out.WriteLine(serialized);

            var deserialized = serializer.Deserialize(serialized);

            Out.WriteLine(deserialized.Value.ToString());
        }
예제 #21
0
        public static Dictionary <string, object> Verify(string token)
        {
            IJsonSerializer   serializer = new JsonNetSerializer();
            IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();

            var segments = token.Split('.');

            if (segments.Length != 3)
            {
                throw new Exception("token invalid");
            }

            var header = serializer.Deserialize <Dictionary <string, string> >(
                System.Text.Encoding.UTF8.GetString(urlEncoder.Decode(segments[0])));

            if (header["alg"] != "EK256K")
            {
                throw new Exception("alg should be EK256K but got " + header["alg"]);
            }


            var payload = serializer.Deserialize <Dictionary <string, object> >(
                System.Text.Encoding.UTF8.GetString(urlEncoder.Decode(segments[1])));
            var signature = urlEncoder.Decode(segments[2]);

            var empty            = new Account();
            var recoveredAddress = empty.Recover(segments[0] + "." + segments[1], signature, false);

            var secretOrPublicKey = payload["iss"].ToString();
            var expectedAddress   = Account.PublicKeyToAddress(secretOrPublicKey.HexToByteArray());

            if (recoveredAddress != expectedAddress)
            {
                throw new Exception(recoveredAddress + " signed the signature but we are expecting " + expectedAddress);
            }
            if (payload["iss"].ToString() != secretOrPublicKey)
            {
                throw new Exception("issuer of the token does not match " + secretOrPublicKey);
            }
            return(payload);
        }
        public void can_serialize_and_deserialize()
        {
            // arrange
            var sut            = new JsonNetSerializer();
            var expectedResult = AutoFixture.Create <GameOver>();

            // act
            var result = (GameOver)sut.Deserialize(sut.Serialize(expectedResult), typeof(GameOver));

            //assert
            result.Should().BeEquivalentTo(expectedResult);
        }
        public void ModelManagerTestReplication()
        {
            IWorldData  worldData   = new WorldData();
            ISerializer serializer  = new JsonNetSerializer();
            var         replication = new WorldReplication(worldData, new JsonCastObject());

            var replicationWrote = replication.WriteWhole();
            var serialized       = serializer.Serialize(replicationWrote);

            serializer.Deserialize(serialized, out object deserialized);
            replication.Read(deserialized);
        }
예제 #24
0
        public BearerAccessToken GetBearerToken(Scope scope, long deviceId)
        {
            BearerAccessToken bearerToken = null;
            string            jwtToken    = GetJwtToken(scope, deviceId);

            Console.WriteLine($"JWT Token: {jwtToken}");

            var username = appSettingsReader.GetValue("username", typeof(string)).ToString();
            var password = appSettingsReader.GetValue("password", typeof(string)).ToString();
            var url      = appSettingsReader.GetValue("serverBase", typeof(string)).ToString() + appSettingsReader.GetValue("authEndpoint", typeof(string)).ToString();

            var data = new Dictionary <string, string>
            {
                { "grant_type", "client_credentials" },
                { "client_assertion_type", "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" },
                { "client_assertion", jwtToken },
                { "scope", scope == Scope.Activation ? "oracle/iot/activation" : "" }
            }.AsEnumerable();

            using (var httpClient = new HttpClient())
            {
                var content = new FormUrlEncodedContent(data);
                content.Headers.Clear();
                content.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

                String authHeader = System.Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(username + ":" + password));
                //httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authHeader);
                httpClient.DefaultRequestHeaders.Add("Authorization", "Basic " + authHeader);
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));


                HttpResponseMessage response   = httpClient.PostAsync(url, content).Result;
                IJsonSerializer     serializer = new JsonNetSerializer();

                using (var responseStream = response.Content.ReadAsStreamAsync().Result)
                {
                    if (responseStream == null)
                    {
                        return(null);
                    }
                    using (var streamReader = new StreamReader(responseStream))
                    {
                        var responseContent = streamReader.ReadToEnd();
                        Console.WriteLine(responseContent);
                        bearerToken = serializer.Deserialize <BearerAccessToken>(responseContent);
                        Console.WriteLine($"Bearer {bearerToken.AccessToken}");
                    }
                }
            }

            return(bearerToken);
        }
        public void TestMessageIsSerializable()
        {
            var msg = new DurableMessageBusTests.TestDurableEvent("0");

            var serializer = new JsonNetSerializer();

            var serialized   = serializer.SerializeToStream(msg);
            var deserialized = serializer.Deserialize <DurableMessageBusTests.TestDurableEvent>(serialized);

            Assert.That(deserialized, Is.Not.Null);
            Assert.That(deserialized.Payload, Is.EqualTo(msg.Payload));
            Assert.That(deserialized.AcknowledgmentId, Is.EqualTo(msg.AcknowledgmentId));
            Assert.That(deserialized.Version, Is.EqualTo(msg.Version));
        }
예제 #26
0
        private async Task <Command> RunCommandAsync(Command command)
        {
            var commandString = _envelopeSerializer.Serialize(command);

            using (var httpContent = new StringContent(commandString, Encoding.UTF8, "application/json"))
            {
                var response = await _client.PostAsync("/commands", httpContent);

                response.EnsureSuccessStatusCode();
                var responseBody = await response.Content.ReadAsStringAsync();

                return((Command)_envelopeSerializer.Deserialize(responseBody));
            }
        }
		/// <inheritdoc />
		public Task<IMultiSearchResponse> MultiSearchAsync(IMultiSearchRequest request)
		{
			return this.Dispatcher.DispatchAsync<IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse, IMultiSearchResponse>(
				request,
				(p, d) =>
				{
					var converter = CreateMultiSearchDeserializer(p);
					var serializer = new JsonNetSerializer(this.ConnectionSettings, converter);
					var json = serializer.SerializeToBytes(p).Utf8String();
					var creator = new MultiSearchCreator((r, s) => serializer.Deserialize<MultiSearchResponse>(s));
					request.RequestParameters.DeserializationOverride(creator);
					return this.LowLevelDispatch.MsearchDispatchAsync<MultiSearchResponse>(p, json);
				}
			);
		}
예제 #28
0
        /// <summary>
        /// 解密token为token结构
        /// </summary>
        /// <param name="encodetokenStr"></param>
        /// <returns></returns>
        public static TokenClaims DecodeToken(string encodetokenStr)
        {
            IJsonSerializer   serializer = new JsonNetSerializer();
            IDateTimeProvider provider   = new UtcDateTimeProvider();
            IJwtValidator     validator  = new JwtValidator(serializer, provider);
            IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
            IJwtDecoder       decoder    = new JwtDecoder(serializer, validator, urlEncoder);
            var          json            = decoder.Decode(encodetokenStr, ConfigHelper.GetConfig <string>("jwtsecret"), verify: true);//token为之前生成的字符串
            TokenPayload paload          = serializer.Deserialize <TokenPayload>(json);

            return(new TokenClaims()
            {
                TokenPayload = paload
            });
        }
예제 #29
0
        public void GivenAJSONContainingADownstreamMessage_ICanGetADOwnstreamMessageResponseObject()
        {
            var json              = SerializedMessages.ResourceManager.GetString("DownstreamMessageResponseJSON");
            var serializer        = new JsonNetSerializer();
            var downstreamMessage = serializer.Deserialize <DownstreamMessageResponse>(json);


            Assert.NotNull(downstreamMessage);
            Assert.Equal(216, downstreamMessage.MulticastId);
            Assert.Equal(3, downstreamMessage.Success);
            Assert.Equal(3, downstreamMessage.Failure);
            Assert.Equal(1, downstreamMessage.CanonicalIds);

            Assert.Equal(6, downstreamMessage.Results.Count);
        }
예제 #30
0
        private static bool TryLoadNewestJson <T>(string cacheDir, out T data)
        {
            DirectoryInfo dir = new DirectoryInfo(cacheDir);

            var files = dir.GetFiles().ToList();

            if (files.Count > 0)
            {
                files.Sort((f1, f2) => f2.LastWriteTime.CompareTo(f1.LastWriteTime));
                var file = files.First();
                Console.WriteLine("Loading Mock-Response from " + file.FullName);
                data = jsonNetSerializer.Deserialize <T>(file.OpenText().ReadToEnd());
                return(true);
            }
            data = default(T);
            return(false);
        }
예제 #31
0
        public async Task <AnalysisResponse> Analyse(string analysisRequest)
        {
            if (analysisRequest == null)
            {
                throw new ArgumentNullException(nameof(analysisRequest));
            }

            try
            {
                var command = new Command
                {
                    Id       = EnvelopeId.NewId(),
                    To       = Node.Parse("*****@*****.**"),
                    Uri      = new LimeUri("/analysis"),
                    Method   = CommandMethod.Set,
                    Resource = new AnalysisRequest
                    {
                        Text = analysisRequest
                    }
                };

                var documentSerializer = new DocumentSerializer();

                var envelopeSerializer = new JsonNetSerializer();
                var commandString      = envelopeSerializer.Serialize(command);

                var httpContent = new StringContent(commandString, Encoding.UTF8, "application/json");

                HttpResponseMessage response = await _client.PostAsync("/commands", httpContent);

                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();

                var envelopeResult = (Command)envelopeSerializer.Deserialize(responseBody);

                return(envelopeResult.Resource as AnalysisResponse);
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine("\nException Caught!");
                Console.WriteLine("Message :{0} ", e.Message);
                return(null);
            }
        }
예제 #32
0
 /// <summary>
 /// 解密token为token结构
 /// </summary>
 /// <param name="encodetokenStr"></param>
 /// <returns></returns>
 public static TokenClaims DecodeToken(string encodetokenStr)
 {
     try
     {
         IJsonSerializer   serializer = new JsonNetSerializer();
         IDateTimeProvider provider   = new UtcDateTimeProvider();
         IJwtValidator     validator  = new JwtValidator(serializer, provider);
         IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
         IJwtDecoder       decoder    = new JwtDecoder(serializer, validator, urlEncoder);
         var         json             = decoder.Decode(encodetokenStr, TokenConfig.JwtKey, verify: true);//token为之前生成的字符串
         TokenClaims claim            = serializer.Deserialize <TokenClaims>(json);
         return(claim);
     }
     catch (Exception ex)
     {
         ToolFactory.LogHelper.Error("解密token发生异常", ex);
         throw ex;
     }
 }
        public void Deserializes()
        {
            // arrange
            var expectedResult = new SerializerWorks
            {
                BecauseItsAwesome = true,
                Inception = new SerializerWorks {
                    BecauseItsAwesome = true
                }
            };

            var input = "{\"BecauseItsAwesome\":true,\"Inception\":{\"BecauseItsAwesome\":true}}";

            var sut = new JsonNetSerializer();
            // act
            var result = sut.Deserialize(input, expectedResult.GetType());

            // assert
            result.ShouldBeEquivalentTo(expectedResult);
        }
예제 #34
0
        private List<JsonWeek> GetJsonSchedule()
        {
            if (this._jsonWeeks == null)
            {
                this._jsonWeeks = new List<string>()
                {
                //        day 1          day 2         day 3        day 4         day 5         day 6          day 7
                    @"[{'AE':[1,2]}, {'AE':[3,4]}, {'AE':[5,1]}, {'AE':[2,3]}, {'AE':[4,5]}, {'AE':[1,2]}, {'AE':[3,4]}]",
                    @"[{'AE':[5,1]}, {'AE':[2,3]}, {'AE':[4,5]}, {'AE':[1,2]}, {'AE':[3,4]}, {'AE':[5,1]}, {'AE':[2,3]}]",
                    @"[{'AE':[4,5]}, {'AE':[1,2]}, {'AE':[3,4]}, {'AE':[5,1]}, {'AE':[2,3]}, {'AE':[4,5]}, {'AE':[1,2]}]",
                    @"[{'AE':[3,4]}, {'AE':[5,1]}, {'AE':[2,3]}, {'AE':[4,5]}, {'AE':[1,2]}, {'AE':[3,4]}, {'AE':[5,1]}]",
                };
            }

            JsonNetSerializer serializer = new JsonNetSerializer();
            List<JsonWeek> JsonSchedule = new List<JsonWeek>();
            foreach (string jsonWeek in this._jsonWeeks)
            {
                JsonSchedule.Add(new JsonWeek(serializer.Deserialize<List<JsonDay>>(jsonWeek)));
            }
            return JsonSchedule;
        }
예제 #35
0
        private List<JsonWeek> GetJsonSchedule()
        {
            //                        day 1          day 2         day 3        day 4         day 5         day 6          day 7
            string jsonWeek1 = @"[{'AE':[1,2]}, {'AE':[3,4]}, {'AE':[5,1]}, {'AE':[2,3]}, {'AE':[4,5]}, {'AE':[1,2]}, {'AE':[3,4]}]";
            string jsonWeek2 = @"[{'AE':[5,1]}, {'AE':[2,3]}, {'AE':[4,5]}, {'AE':[1,2]}, {'AE':[3,4]}, {'AE':[5,1]}, {'AE':[2,3]}]";
            string jsonWeek3 = @"[{'AE':[4,5]}, {'AE':[1,2]}, {'AE':[3,4]}, {'AE':[5,1]}, {'AE':[2,3]}, {'AE':[4,5]}, {'AE':[1,2]}]";
            string jsonWeek4 = @"[{'AE':[3,4]}, {'AE':[5,1]}, {'AE':[2,3]}, {'AE':[4,5]}, {'AE':[1,2]}, {'AE':[3,4]}, {'AE':[5,1]}]";

            JsonNetSerializer serializer = new JsonNetSerializer();
            List<JsonWeek> JsonSchedule = new List<JsonWeek>();
            JsonSchedule.Add(new JsonWeek(serializer.Deserialize<List<JsonDay>>(jsonWeek1)));
            JsonSchedule.Add(new JsonWeek(serializer.Deserialize<List<JsonDay>>(jsonWeek2)));
            JsonSchedule.Add(new JsonWeek(serializer.Deserialize<List<JsonDay>>(jsonWeek3)));
            JsonSchedule.Add(new JsonWeek(serializer.Deserialize<List<JsonDay>>(jsonWeek4)));

            return JsonSchedule;
        }