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); }