Exemplo n.º 1
0
        public IHttpActionResult AccessControlList(AccessControlListModel model)
        {
            if (model.Access != AccessModel.Subscribe)
            {
                _logger.Info($"Client[{model.ClientId}] {model.Access} Topic[{model.Topic}] failed, \"Subscribe only\".{{ Username: {model.Username}, Ip: {model.Ipaddr}}}");
                return(BadResult());
            }

            if (!Guid.TryParse(model.ClientId, out var clientId))
            {
                _logger.Info($"Client[{model.ClientId}] {model.Access} Topic[{model.Topic}] failed, \"ClientId error\".{{ Username: {model.Username}, Ip: {model.Ipaddr}}}");
                return(BadResult());
            }

            var topic = model.Topic;
            var arr   = topic.Split('/');

            if (arr.Length != 3)
            {
                _logger.Info($"Client[{model.ClientId}] {model.Access} Topic[{model.Topic}] failed, \"Topic error\".{{ Username: {model.Username}, Ip: {model.Ipaddr}}}");
                return(BadResult());
            }

            var result = false;

            try
            {
                var component = new PushMessageComponent();
                result = component.AccessControlList(clientId, arr[0], arr[2]);
            }
            catch { }

            _logger.Info($"Client[{model.ClientId}] {model.Access} Topic[{model.Topic}] {(result ? "successed" : "failed")}.{{ Username: {model.Username}, Ip: {model.Ipaddr}}}");
            return(result ? OkResult() : BadResult());
        }
Exemplo n.º 2
0
        public IHttpActionResult Auth(AuthModel model)
        {
            if (!Guid.TryParse(model.ClientId, out var clientId))
            {
                _logger.Info($"Client[{model.ClientId}] Request Login failed, \"ClientId error\". {{ Username: {model.Username}, Password: {model.Password}}}");
                return(BadResult());
            }

            var result = false;

            try
            {
                var component = new PushMessageComponent();
                result = component.Auth(clientId, model.Username, model.Password);
            }
            catch { }

            _logger.Info($"Client[{model.ClientId}] Request Login {(result ? "successed" : "failed")}. {{ Username: {model.Username}, Password: {model.Password}}}");

            return(result ? OkResult() : BadResult());
        }