예제 #1
0
        public static AuditAttribute GetAudit(this IInvocation invocation)
        {
            var attrs = invocation.GetAttributes <AuditAttribute>();

            if (attrs.Length > 0)
            {
                return(attrs[0]);
            }

            return(null);
        }
예제 #2
0
        public static IsolationLevel GetIsolationLevel(this IInvocation invocation)
        {
            var attrs = invocation.GetAttributes <TransactionAttribute>();

            if (attrs.Length > 0)
            {
                return(attrs[0].IsolationLevel);
            }

            return(IsolationLevel.ReadCommitted);
        }
예제 #3
0
        private void CheckPermission(IInvocation invocation)
        {
            var attrs = invocation.GetAttributes <PermissionAttribute>();

            if (attrs.Length != 0)  // permission defined
            {
                var permission = attrs[0].Name;

                if (!PermissionChecker.IsGranted(Session, permission))
                {
                    Logger.Info($"SiteId:{Session.GetSiteId()},AgentId:{Session.GetAgentId()},Type:PermissionCheckFail,Permission:{permission} ");
                    throw new AuthorizationException();
                }
            }
        }
예제 #4
0
        private void CheckPermission(IInvocation invocation)
        {
            var attrs = invocation.GetAttributes <AuthorizationAttribute>();

            if (attrs.Length == 0)  // permission undefined
            {
                return;
            }

            var permissions = attrs[0].Permissions;

            if (!AuthorizationProvider.IsGranted(this.Application, permissions))
            {
                throw new AuthorizationException();
            }
        }