示例#1
0
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            //检查权限
            if (AuthCode.IsNotNullOrEmpty())
            {
                var userId = ViewContext.HttpContext.User.GetUserIdOrZero();
                if (userId == 0)
                {
                    return;
                }
                var result = await _service.CheckUserAuth(userId, AuthCode);

                if (!result)
                {
                    return;
                }
            }

            await base.ProcessAsync(context, output);
        }
示例#2
0
        private async Task <bool> CheckPermissionAsync(AuthorizationHandlerContext context, AuthAttribute attribute,
                                                       string baseCode = null)
        {
            if (attribute == null)
            {
                return(true);
            }
            if (attribute.AuthCode.IsNullOrEmpty())
            {
                return(context.User != null && context.User.GetUserIdOrZero() != 0);
            }
            var userId = context.User.GetUserIdOrZero();

            if (userId == 0)
            {
                return(false);
            }
            return(await service.CheckUserAuth(userId,
                                               (baseCode.IsNullOrEmpty() || attribute.IsFullAuthCode)?attribute.AuthCode : $"{baseCode}.{attribute.AuthCode}"));
        }