示例#1
0
        public async Task <object> Get(string signature, string timestamp, string nonce,
                                       string echostr, [FromServices] IKeyValuesEntityService keyValueService)
        {
            if (signature == null || timestamp == null || nonce == null)
            {
                throw new Exception();
            }

            var token = await keyValueService.GetValue(ServerKeys.WxValidateToken.Key);

            if (string.IsNullOrWhiteSpace(token))
            {
                throw new Exception();
            }

            if (!CheckSignature(signature, token, timestamp, nonce))
            {
                throw new Exception();
            }

            if (echostr != null)
            {
                return(echostr);
            }

            throw new NotImplementedException();
        }
示例#2
0
        private async Task <IQueryable <File> > FilterPrivate(IQueryable <File> items, ServerCallContext context)
        {
            //todo: permission via filetype: File->Adm, Resource->Login
            var readPrivate = (await _userService.GetUser(context.GetHttpContext())).HasReadPrivatePermission();

            if (!readPrivate)
            {
                var defStr = await _keyValueService.GetValue(ServerKeys.DefaultPrivate.Key);

                var defPrivate = defStr == "true";
                if (defPrivate)
                {
                    items = items.Where(i => i.Private == (ulong)PrivateType.Public);
                }
                else
                {
                    items = items.Where(i => i.Private != (ulong)PrivateType.Private);
                }
            }
            return(items);
        }