summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2009-06-03 08:24:05 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2009-06-03 08:24:05 -0700
commitc97cd905804d996def21e885eab0bc8a602b31e4 (patch)
treedc0616a859bb1f5bc05556a8813312270b5490d7
parent5e570f80bd2934ad68a0a77751869c9b86700c21 (diff)
downloadDotNetOpenAuth-c97cd905804d996def21e885eab0bc8a602b31e4.zip
DotNetOpenAuth-c97cd905804d996def21e885eab0bc8a602b31e4.tar.gz
DotNetOpenAuth-c97cd905804d996def21e885eab0bc8a602b31e4.tar.bz2
Added configuration setting to turn off OpenID discovery caching.
-rw-r--r--src/DotNetOpenAuth/Configuration/OpenIdElement.cs25
-rw-r--r--src/DotNetOpenAuth/Yadis/Yadis.cs3
2 files changed, 26 insertions, 2 deletions
diff --git a/src/DotNetOpenAuth/Configuration/OpenIdElement.cs b/src/DotNetOpenAuth/Configuration/OpenIdElement.cs
index 25e067e..0d936b2 100644
--- a/src/DotNetOpenAuth/Configuration/OpenIdElement.cs
+++ b/src/DotNetOpenAuth/Configuration/OpenIdElement.cs
@@ -32,11 +32,16 @@ namespace DotNetOpenAuth.Configuration {
private const string ExtensionFactoriesElementName = "extensionFactories";
/// <summary>
- /// Gets the name of the @maxAuthenticationTime attribute.
+ /// The name of the @maxAuthenticationTime attribute.
/// </summary>
private const string MaxAuthenticationTimePropertyName = "maxAuthenticationTime";
/// <summary>
+ /// The name of the @cacheDiscovery attribute.
+ /// </summary>
+ private const string CacheDiscoveryPropertyName = "cacheDiscovery";
+
+ /// <summary>
/// Initializes a new instance of the <see cref="OpenIdElement"/> class.
/// </summary>
internal OpenIdElement() {
@@ -58,6 +63,24 @@ namespace DotNetOpenAuth.Configuration {
}
/// <summary>
+ /// Gets or sets a value indicating whether the results of Identifier discovery
+ /// should be cached.
+ /// </summary>
+ /// <value>
+ /// Use <c>true</c> to allow identifier discovery to immediately return cached results when available;
+ /// otherwise, use <c>false</c>.to force fresh results every time at the cost of slightly slower logins.
+ /// The default value is <c>true</c>.
+ /// </value>
+ /// <remarks>
+ /// When enabled, caching is done according to HTTP standards.
+ /// </remarks>
+ [ConfigurationProperty(CacheDiscoveryPropertyName, DefaultValue = true)]
+ internal bool CacheDiscovery {
+ get { return (bool)this[CacheDiscoveryPropertyName]; }
+ set { this[CacheDiscoveryPropertyName] = value; }
+ }
+
+ /// <summary>
/// Gets or sets the configuration specific for Relying Parties.
/// </summary>
[ConfigurationProperty(RelyingPartyElementName)]
diff --git a/src/DotNetOpenAuth/Yadis/Yadis.cs b/src/DotNetOpenAuth/Yadis/Yadis.cs
index 97fdafa..151aa63 100644
--- a/src/DotNetOpenAuth/Yadis/Yadis.cs
+++ b/src/DotNetOpenAuth/Yadis/Yadis.cs
@@ -11,6 +11,7 @@ namespace DotNetOpenAuth.Yadis {
using System.Net.Cache;
using System.Web.UI.HtmlControls;
using System.Xml;
+ using DotNetOpenAuth.Configuration;
using DotNetOpenAuth.Messaging;
using DotNetOpenAuth.OpenId;
using DotNetOpenAuth.Xrds;
@@ -27,7 +28,7 @@ namespace DotNetOpenAuth.Yadis {
/// <summary>
/// Gets or sets the cache that can be used for HTTP requests made during identifier discovery.
/// </summary>
- internal static readonly RequestCachePolicy IdentifierDiscoveryCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable);
+ internal static readonly RequestCachePolicy IdentifierDiscoveryCachePolicy = new HttpRequestCachePolicy(DotNetOpenAuthSection.Configuration.OpenId.CacheDiscovery ? HttpRequestCacheLevel.CacheIfAvailable : HttpRequestCacheLevel.BypassCache);
/// <summary>
/// The maximum number of bytes to read from an HTTP response