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)); }
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)); }
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 }"); } }
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); }
private static bool AddressRangeIncludes( UnsecuredAccessAddressRange subjectAddressRange, UnsecuredAccessAddressRange addressRangeToCheck) { return((subjectAddressRange & addressRangeToCheck) == addressRangeToCheck); }