Ejemplo n.º 1
0
        /// <summary>
        /// @xis 权限验证 2020-3-29 09:43:30
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private async Task <bool> PrivilegeVerify(HttpContext context, LoginResult user)
        {
            if (context.GetEndpoint().Metadata.Any(a => a is PrivilegeAnyAttribute))
            {
                return(true);
            }

            IEnumerable <PrivilegeAttribute> privilege_list = context.GetEndpoint().Metadata.Where(w => w is PrivilegeAttribute).Select(s => s as PrivilegeAttribute);

            if (privilege_list.Count() == 0)
            {
                return(true);
            }
            IPrivilegeServer privilegeServer = new PrivilegeServerImpl();

            foreach (var item in privilege_list)
            {
                if (await privilegeServer.HasPrivilege(user.user_id, item.privilege_key))
                {
                    return(true);
                }
            }

            return(false);
        }