summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenId/Configuration/UntrustedWebRequestSection.cs
blob: 392acf8fcccabc7e8077db7421713d0393da9e8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System;
using System.Configuration;

namespace DotNetOpenId.Configuration {
	internal class UntrustedWebRequestSection : ConfigurationSection {
		internal static UntrustedWebRequestSection Configuration {
			get { return (UntrustedWebRequestSection)ConfigurationManager.GetSection("dotNetOpenId/untrustedWebRequest") ?? new UntrustedWebRequestSection(); }
		}

		public UntrustedWebRequestSection() {
			SectionInformation.AllowLocation = false;
		}

		const string readWriteTimeoutConfigName = "readWriteTimeout";
		[ConfigurationProperty(readWriteTimeoutConfigName, DefaultValue = "00:00:00.800")]
		[PositiveTimeSpanValidator]
		public TimeSpan ReadWriteTimeout {
			get { return (TimeSpan)this[readWriteTimeoutConfigName]; }
			set { this[readWriteTimeoutConfigName] = value; }
		}

		const string timeoutConfigName = "timeout";
		[ConfigurationProperty(timeoutConfigName, DefaultValue = "00:00:10")]
		[PositiveTimeSpanValidator]
		public TimeSpan Timeout {
			get { return (TimeSpan)this[timeoutConfigName]; }
			set { this[timeoutConfigName] = value; }
		}

		const string maximumBytesToReadConfigName = "maximumBytesToRead";
		[ConfigurationProperty(maximumBytesToReadConfigName, DefaultValue = 1024 * 1024)]
		[IntegerValidator(MinValue = 2048)]
		public int MaximumBytesToRead {
			get { return (int)this[maximumBytesToReadConfigName]; }
			set { this[maximumBytesToReadConfigName] = value; }
		}

		const string maximumRedirectionsConfigName = "maximumRedirections";
		[ConfigurationProperty(maximumRedirectionsConfigName, DefaultValue = 10)]
		[IntegerValidator(MinValue = 0)]
		public int MaximumRedirections {
			get { return (int)this[maximumRedirectionsConfigName]; }
			set { this[maximumRedirectionsConfigName] = value; }
		}

		const string whitelistHostsConfigName = "whitelistHosts";
		[ConfigurationProperty(whitelistHostsConfigName, IsDefaultCollection = false)]
		[ConfigurationCollection(typeof(WhiteBlackListCollection))]
		public WhiteBlackListCollection WhitelistHosts {
			get { return (WhiteBlackListCollection)this[whitelistHostsConfigName] ?? new WhiteBlackListCollection(); }
			set { this[whitelistHostsConfigName] = value; }
		}

		const string blacklistHostsConfigName = "blacklistHosts";
		[ConfigurationProperty(blacklistHostsConfigName, IsDefaultCollection = false)]
		[ConfigurationCollection(typeof(WhiteBlackListCollection))]
		public WhiteBlackListCollection BlacklistHosts {
			get { return (WhiteBlackListCollection)this[blacklistHostsConfigName] ?? new WhiteBlackListCollection(); }
			set { this[blacklistHostsConfigName] = value; }
		}

		const string whitelistHostsRegexConfigName = "whitelistHostsRegex";
		[ConfigurationProperty(whitelistHostsRegexConfigName, IsDefaultCollection = false)]
		[ConfigurationCollection(typeof(WhiteBlackListCollection))]
		public WhiteBlackListCollection WhitelistHostsRegex {
			get { return (WhiteBlackListCollection)this[whitelistHostsRegexConfigName] ?? new WhiteBlackListCollection(); }
			set { this[whitelistHostsRegexConfigName] = value; }
		}

		const string blacklistHostsRegexConfigName = "blacklistHostsRegex";
		[ConfigurationProperty(blacklistHostsRegexConfigName, IsDefaultCollection = false)]
		[ConfigurationCollection(typeof(WhiteBlackListCollection))]
		public WhiteBlackListCollection BlacklistHostsRegex {
			get { return (WhiteBlackListCollection)this[blacklistHostsRegexConfigName] ?? new WhiteBlackListCollection(); }
			set { this[blacklistHostsRegexConfigName] = value; }
		}
	}
}