private void RunClientAccessRules()
        {
            long ticks = DateTime.UtcNow.Ticks;
            ClientAccessRuleCollection clientAccessRuleCollection = this.FetchClientAccessRulesCollection();
            ADRawEntry adrawEntry             = this.FetchADRawEntry(this.User);
            string     usernameFromADRawEntry = ClientAccessRulesUtils.GetUsernameFromADRawEntry(adrawEntry);

            base.WriteVerbose(RulesTasksStrings.TestClientAccessRuleFoundUsername(usernameFromADRawEntry));
            ClientAccessRulesEvaluationContext context = new ClientAccessRulesEvaluationContext(clientAccessRuleCollection, usernameFromADRawEntry, new IPEndPoint(this.RemoteAddress, this.RemotePort), this.Protocol, this.AuthenticationType, adrawEntry, ObjectSchema.GetInstance <ClientAccessRulesRecipientFilterSchema>(), delegate(ClientAccessRulesEvaluationContext evaluationContext)
            {
            }, delegate(Rule rule, ClientAccessRulesAction action)
            {
                ObjectId identity = null;
                ClientAccessRule clientAccessRule = rule as ClientAccessRule;
                if (clientAccessRule != null)
                {
                    identity = clientAccessRule.Identity;
                }
                this.WriteResult(new ClientAccessRulesEvaluationResult
                {
                    Identity = identity,
                    Name     = rule.Name,
                    Action   = action
                });
            }, ticks);

            clientAccessRuleCollection.Run(context);
        }