コード例 #1
0
        public ServicePolicy GetServicePolicy(Guid serviceId)
        {
            DomainPolicy.IPolicy legacyPolicy = GetAdvancedServicePolicy(serviceId);

            if (legacyPolicy.GetType() != typeof(DomainPolicy.LegacyPolicy))
            {
                Trace.TraceWarning($"Invalid policy type returned to legacy function. To utilize new policies please use GetAdvancedServicePolicy");
                return(null);
            }

            // This calls ToTransport because the parsing logic that is contained in the ServicePolicy class shouldn't be duplicated
            return(ServicePolicy.FromTransport((AuthPolicy)legacyPolicy.ToTransport()));
        }
コード例 #2
0
        public void FromTransport_Variant1()
        {
            var authPolicy = new AuthPolicy(1, null, null, null, true, new List <AuthPolicy.Location>
            {
                new AuthPolicy.Location("n", 1, 2, 3),
                new AuthPolicy.Location("x", 2, 4, 6)
            },
                                            new List <AuthPolicy.TimeFence>
            {
                new AuthPolicy.TimeFence("y", new List <string> {
                    "Monday"
                }, 1, 2, 3, 4, "A")
            });

            var servicePolicy = ServicePolicy.FromTransport(authPolicy);

            Assert.IsTrue(servicePolicy.RequiredFactors == 1);
            Assert.IsTrue(servicePolicy.RequireInherenceFactor == null);
            Assert.IsTrue(servicePolicy.RequireKnowledgeFactor == null);
            Assert.IsTrue(servicePolicy.RequirePossessionFactor == null);

            Assert.IsTrue(servicePolicy.TimeFences.Count == 1);
            Assert.IsTrue(servicePolicy.TimeFences[0].Days.Count == 1);
            Assert.IsTrue(servicePolicy.TimeFences[0].Days[0] == DayOfWeek.Monday);
            Assert.IsTrue(servicePolicy.TimeFences[0].Name == "y");
            Assert.IsTrue(servicePolicy.TimeFences[0].TimeZone == "A");
            Assert.IsTrue(servicePolicy.TimeFences[0].StartHour == 1);
            Assert.IsTrue(servicePolicy.TimeFences[0].EndHour == 2);
            Assert.IsTrue(servicePolicy.TimeFences[0].StartMinute == 3);
            Assert.IsTrue(servicePolicy.TimeFences[0].EndMinute == 4);

            Assert.IsTrue(servicePolicy.Locations.Count == 2);
            Assert.IsTrue(servicePolicy.Locations[0].Name == "n");
            Assert.AreEqual(servicePolicy.Locations[0].Latitude, 2, 0.01);
            Assert.AreEqual(servicePolicy.Locations[0].Longitude, 3, 0.01);
            Assert.AreEqual(servicePolicy.Locations[0].Radius, 1, 0.01);

            Assert.IsTrue(servicePolicy.Locations[1].Name == "x");
            Assert.AreEqual(servicePolicy.Locations[1].Latitude, 4, 0.01);
            Assert.AreEqual(servicePolicy.Locations[1].Longitude, 6, 0.01);
            Assert.AreEqual(servicePolicy.Locations[1].Radius, 2, 0.01);
        }