/// <summary>
        /// 赋值Session
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public static void SetSession(string key, string value)
        {
            string json = SerializerJson.SerializeObject(value);

            byte[] serializedResult = System.Text.Encoding.UTF8.GetBytes(json);
            Compatible.HttpContext.Current.Session.Set(key, serializedResult);
        }
Esempio n. 2
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            base.OnActionExecuting(context);
            Microsoft.Extensions.Primitives.StringValues token = context.HttpContext.Request.Headers["AccessToken"];
            if (!string.IsNullOrWhiteSpace(token))
            {
                //存在AccessToken值,进行验证
                RedisCacheTicket authBase   = new RedisCacheTicket(token);
                TicketEntity     userTicket = authBase.CurrentUserTicket;
                if (userTicket != null && userTicket.MemberID > 0)
                {
                    CurrentUserTicket = userTicket;
                    return;
                }
            }

            //直接输出结果,不经过Controller
            ResponseResult result = new ResponseResult()
            {
                errno  = 30,
                errmsg = "请重新登录",
            };

            context.Result = new ContentResult()
            {
                Content = SerializerJson.SerializeObject(result), StatusCode = 200
            };
        }
Esempio n. 3
0
        /// <summary>
        /// RPC服务端
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="exchange"></param>
        /// <param name="queue"></param>
        /// <param name="isProperties"></param>
        /// <param name="handler"></param>
        /// <param name="isDeadLetter"></param>
        public void RpcService <T>(string exchange, string queue, bool isProperties, Func <T, T> handler, bool isDeadLetter)
        {
            //队列声明
            var channel = GetModel(queue, isProperties);

            var consumer = new EventingBasicConsumer(channel);

            consumer.Received += (model, ea) =>
            {
                var body   = ea.Body;
                var msgStr = body.StreamToStr();
                var msg    = SerializerJson.DeserializeObject <T>(msgStr);

                var props      = ea.BasicProperties;
                var replyProps = channel.CreateBasicProperties();
                replyProps.CorrelationId = props.CorrelationId;

                try
                {
                    msg = handler(msg);
                }
                catch (Exception ex)
                {
                    //ex.GetInnestException().WriteToFile("队列接收消息", "RabbitMq");
                }
                finally
                {
                    channel.BasicPublish(exchange, props.ReplyTo, replyProps, SerializerJson.SerializeObject(msg).StrToByte());
                    channel.BasicAck(ea.DeliveryTag, false);
                }
            };
            channel.BasicConsume(queue, false, consumer);
        }
Esempio n. 4
0
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="mobile"></param>
        /// <returns></returns>
        public static bool SendMesssage(string mobile, string Content)
        {
            string url = string.Format("{0}:{1}/inter/sendSingleSMS", EMayConfig.Host, EMayConfig.Port);

            SingMessage entity = new SingMessage()
            {
                content            = Content,
                mobile             = mobile,
                customsmsid        = DateTime.Now.ToString("yyyyMMddHHmmsss"),
                extendedcode       = "",
                requesttime        = DateTime.Now.Ticks,
                timertime          = "",
                requestvalidperiod = EMayConfig.ValidPeriod
            };
            HttpWebResponse response = null;
            string          json     = SerializerJson.SerializeObject(entity);

            byte[] byteArray = EMayConfig.IsCompress ? AESHelper.AESEncrypt(GzipHelper.GZipCompressString(json), EMayConfig.SecretKey) : AESHelper.AESEncrypt(json, EMayConfig.SecretKey);
            byte[] result    = HttpHelper.SendRequestData(url, byteArray, ref response);

            string code = response.GetResponseHeader("result").ToString();

            if (code == "SUCCESS")
            {
                string res = AESHelper.AESDecryptString(result, EMayConfig.SecretKey);
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            base.OnActionExecuting(context);
            this.Ip = GetHostAddress();
            bool   a  = context.HttpContext.Request.Cookies.ContainsKey("AccessToken");
            bool   b  = context.HttpContext.Request.Cookies.TryGetValue("AccessToken", out string token);
            string cb = string.Empty;;
            bool   c  = context.HttpContext.Request.Cookies.TryGetValue("CabinetCode", out cb);

            CabinetCode = cb;
            if (b)
            {
                this.OpenId = token;
            }
            else
            {
                context.Result = new ContentResult()
                {
                    Content = SerializerJson.SerializeObject(new
                    {
                        code = 30,
                        msg  = "请重新登录",
                    }),
                    StatusCode = 200
                };
            }
        }
Esempio n. 6
0
        /// <summary>
        /// 启动服务
        /// </summary>
        public Task StartAsync(CancellationToken cancellationToken)
        {
            ConsumerService consumerService = new ConsumerService("DMS.QueueA");

            //被动拉取对列消息,可以用定时任务来处理
            consumerService.Pull <MessageBModel>(msg =>
            {
                //throw new Exception("Always fails!");
                var json = SerializerJson.SerializeObject(msg);
                Console.WriteLine(json);
            });


            //正常消费,不处理异常
            //consumerService.Subscribe<MessageBModel>(msg =>
            //{
            //    throw new Exception("Always fails!");
            //});

            //消费时异常,重新在次消费,可以设置消费的时间延迟消费
            //consumerService.SubscribeRetry<MessageBModel>(msg =>
            //{
            //    throw new Exception("Always fails!");
            //});


            return(Task.CompletedTask);
        }
Esempio n. 7
0
        public bool Start()
        {
            _rabbitMqProxy.Subscribe <MessageModel>(msg =>
            {
                var json = SerializerJson.SerializeObject(msg);
                Console.WriteLine(json);
            });

            return(true);
        }
 /// <summary>
 /// 获取参数错误信息
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static string getResultInfo(object param)
 {
     if (Compatible.HttpContext.Current != null && Compatible.HttpContext.Current.Request != null && Compatible.HttpContext.Current.Request.Query["debug"] == "true")
     {
         if (param == null)
         {
             return("param is null!");
         }
         else
         {
             return(SerializerJson.SerializeObject(param));
         }
     }
     return(string.Empty);
 }
Esempio n. 9
0
        public bool Start()
        {
            var input = Input();

            while (input.ToLower() != "n")
            {
                _rabbitMqProxy.Pull <MessageModel>(msg =>
                {
                    Console.WriteLine(SerializerJson.SerializeObject(msg));
                });

                input = Input();
            }

            return(true);
        }
Esempio n. 10
0
        /// <summary>
        /// RPC客户端
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="command"></param>
        /// <returns></returns>
        public string RpcClient <T>(T command) where T : class
        {
            var queueInfo = GetRabbitMqAttribute <T>();

            if (queueInfo.IsNullOrEmpty())
            {
                throw new ArgumentException("RabbitMqAttribute");
            }

            var body         = SerializerJson.SerializeObject(command);
            var exchange     = queueInfo.ExchangeName;
            var queue        = queueInfo.QueueName;
            var routingKey   = queueInfo.ExchangeName;
            var isProperties = queueInfo.IsProperties;

            return(RpcClient(exchange, queue, routingKey, body, isProperties));
        }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            base.OnActionExecuting(context);
            bool b = context.HttpContext.Request.Cookies.TryGetValue("AccessToken", out string token);

            if (!b)
            {
                context.Result = new ContentResult()
                {
                    Content = SerializerJson.SerializeObject(new
                    {
                        code = 30,
                        msg  = "请重新登录",
                    }),
                    StatusCode = 200
                };
            }
        }
Esempio n. 12
0
        private static void InitRedis(RedisEntityConfig redisconfig)
        {
            CSRedisClient client = null;

            if (redisconfig.RedisMode == "Single")
            {
                client = new CSRedisClient(redisconfig.RedisConnectionSingle);
            }
            else if (redisconfig.RedisMode == "Multiple")
            {
                client = new CSRedisClient(null, redisconfig.RedisConnectionMultiple.ToArray());
            }
            else
            {
                throw new Exception("Redis初始化异常!,请检查配置文件");
            }
            RedisHelper.Initialization(client, value => SerializerJson.SerializeObject(value), deserialize: (data, type) => SerializerJson.DeserializeObject(data, type));
        }
Esempio n. 13
0
        /// <summary>
        /// 发布消息
        /// </summary>
        /// <param name="command">指令</param>
        /// <returns></returns>
        public void Publish <T>(T command) where T : class
        {
            //获取当前队列的特性
            var queueInfo = GetRabbitMQAttribute <T>();

            if (queueInfo.IsNullOrEmpty())
            {
                throw new ArgumentException(RabbitMqAttribute);
            }

            var body         = SerializerJson.SerializeObject(command);
            var exchange     = queueInfo.ExchangeName;
            var queue        = queueInfo.QueueName;
            var routingKey   = queueInfo.ExchangeName;
            var isProperties = queueInfo.IsProperties;

            Publish(exchange, queue, routingKey, body, isProperties);
        }
        private static void InitRedis(ref IServiceCollection services, RedisEntityConfig redisconfig)
        {
            CSRedisClient client = null;

            if (redisconfig.RedisMode == "Single")
            {
                client = new CSRedisClient(redisconfig.RedisConnectionSingle);
            }
            else if (redisconfig.RedisMode == "Multiple")
            {
                client = new CSRedisClient(null, redisconfig.RedisConnectionMultiple.ToArray());
            }
            else
            {
                throw new Exception("Redis初始化异常!,请检查配置文件");
            }
            RedisHelper.Initialization(client, value => SerializerJson.SerializeObject(value), deserialize: (data, type) => SerializerJson.DeserializeObject(data, type));
            services.AddSingleton <IDistributedCache>(new TKBase.Framework.Redis.CSRedisCache(RedisHelper.Instance));
        }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            base.OnActionExecuting(context);
            Ip = GetHostAddress();
            bool a = context.HttpContext.Request.Headers.ContainsKey("AccessToken");
            bool b = context.HttpContext.Request.Headers.TryGetValue("AccessToken", out Microsoft.Extensions.Primitives.StringValues token);

            if (!string.IsNullOrWhiteSpace(token))
            {
                RedisCacheTicket authBase   = new RedisCacheTicket(token);
                TicketEntity     userTicket = authBase.CurrUserInfo;
                if (userTicket != null && userTicket.MemberID > 0)
                {
                    CurrentUserTicket = userTicket;
                }
                else
                {
                    //直接输出结果,不经过Controller
                    context.Result = new ContentResult()
                    {
                        Content = SerializerJson.SerializeObject(new
                        {
                            code = 30,
                            msg  = "请重新登录",
                        }),
                        StatusCode = 200
                    };
                }
            }
            else
            {
                context.Result = new ContentResult()
                {
                    Content = SerializerJson.SerializeObject(new
                    {
                        code = 30,
                        msg  = "请重新登录",
                    }),
                    StatusCode = 200
                };
            }
        }
Esempio n. 16
0
        /// <summary>
        /// 发布消息到死信队列
        /// </summary>
        /// <param name="body">死信信息</param>
        /// <param name="ex">异常</param>
        /// <param name="queue">死信队列名称</param>
        /// <returns></returns>
        private void PublishToDead <T>(string queue, string body, Exception ex) where T : class
        {
            var queueInfo = typeof(T).GetCustomAttribute <RabbitMqAttribute>();

            if (queueInfo.IsNullOrEmpty())
            {
                throw new ArgumentException(RabbitMqAttribute);
            }

            var    deadLetterExchange   = queueInfo.ExchangeName;
            string deadLetterQueue      = queueInfo.QueueName;
            var    deadLetterRoutingKey = deadLetterExchange;
            var    deadLetterBody       = new DeadLetterQueue
            {
                Body           = body,
                CreateDateTime = DateTime.Now,
                ExceptionMsg   = ex.Message,
                Queue          = queue,
                RoutingKey     = deadLetterExchange,
                Exchange       = deadLetterRoutingKey
            };

            Publish(deadLetterExchange, deadLetterQueue, deadLetterRoutingKey, SerializerJson.SerializeObject(deadLetterBody));
        }
Esempio n. 17
0
        private string ConvertJson <T>(T value)
        {
            string result = value is string?value.ToString() : SerializerJson.SerializeObject(value);

            return(result);
        }
Esempio n. 18
0
 public static string SendRequestData <T>(string url, T data, ref HttpWebResponse response, CertificateEntity Certificate = null) where T : class
 {
     return(SendRequestData(url, SerializerJson.SerializeObject(data), ref response, Certificate));
 }
Esempio n. 19
0
 /// <summary>
 /// 保存一个对象
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="key"></param>
 /// <param name="obj"></param>
 /// <param name="expiry"></param>
 /// <returns></returns>
 public bool StringSet <T>(string key, T obj, TimeSpan?expiry = default(TimeSpan?)) where T : class
 {
     return(StringSet(key, SerializerJson.SerializeObject(obj), expiry));
 }
Esempio n. 20
0
        /// <summary>
        /// 发布
        /// </summary>
        /// <typeparam name="F"></typeparam>
        /// <param name="Topic"></param>
        /// <param name="Entity"></param>
        public static void Publish <F>(string Topic, F Entity) where F : class
        {
            string Messsage = SerializerJson.SerializeObject(Entity);

            Publish(Topic, Messsage);
        }