Exemplo n.º 1
0
        private static bool IsUnsecuredAccessAllowedForIPv6Address(UnsecuredAccessAddressRange addressRange, IPAddress address)
        {
            var octets = address.GetAddressBytes();

            return((AddressRangeIncludes(addressRange, UnsecuredAccessAddressRange.Local) && IsLoopbackIpv6(octets)) ||
                   (AddressRangeIncludes(addressRange, UnsecuredAccessAddressRange.PrivateNetwork) && IsPrivateIpv6(octets)) ||
                   AddressRangeIncludes(addressRange, UnsecuredAccessAddressRange.PublicNetwork));
        }
Exemplo n.º 2
0
        private static bool IsUnsecuredAccessAllowedForIPv4Address(
            UnsecuredAccessAddressRange addressRange, IPAddress address)
        {
            var octets = address.GetAddressBytes();

            return((AddressRangeIncludes(addressRange, UnsecuredAccessAddressRange.Local) && octets[0] == 127) ||
                   (AddressRangeIncludes(addressRange, UnsecuredAccessAddressRange.PrivateNetwork) &&
                    (octets[0] == 10 ||
                     (octets[0] == 192 && octets[1] == 168) ||
                     (octets[0] == 172 && octets[1] >= 16 && octets[1] <= 31))) ||
                   AddressRangeIncludes(addressRange, UnsecuredAccessAddressRange.PublicNetwork));
        }
Exemplo n.º 3
0
        public static bool IsUnsecuredAccessAllowedForAddress(UnsecuredAccessAddressRange addressRange, IPAddress ipAddress)
        {
            switch (ipAddress.AddressFamily)
            {
            case AddressFamily.InterNetwork:
                return(IsUnsecuredAccessAllowedForIPv4Address(addressRange, ipAddress));

            case AddressFamily.InterNetworkV6:
                return(IsUnsecuredAccessAllowedForIPv6Address(addressRange, ipAddress));

            default:
                throw new NotSupportedException($"Not supported address family: { ipAddress.AddressFamily }");
            }
        }
Exemplo n.º 4
0
        public RavenConfiguration GetConfiguration(
            string certPath = null,
            UnsecuredAccessAddressRange unsecuredAccessAddressRange = UnsecuredAccessAddressRange.Local,
            string publicServerUrl = null,
            string serverUrl       = null)
        {
            var configuration = new RavenConfiguration(null, ResourceType.Server);

            configuration.SetSetting(
                RavenConfiguration.GetKey(x => x.Core.ServerUrls), serverUrl);
            configuration.SetSetting(
                RavenConfiguration.GetKey(x => x.Core.PublicServerUrl), publicServerUrl);
            configuration.SetSetting(
                RavenConfiguration.GetKey(x => x.Security.CertificatePath), certPath);
            configuration.SetSetting(
                RavenConfiguration.GetKey(x => x.Security.UnsecuredAccessAllowed), Enum.GetName(typeof(UnsecuredAccessAddressRange), unsecuredAccessAddressRange));
            configuration.Initialize();

            return(configuration);
        }
Exemplo n.º 5
0
 private static bool AddressRangeIncludes(
     UnsecuredAccessAddressRange subjectAddressRange, UnsecuredAccessAddressRange addressRangeToCheck)
 {
     return((subjectAddressRange & addressRangeToCheck) == addressRangeToCheck);
 }