summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/HostMetaDiscoveryService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/HostMetaDiscoveryService.cs')
-rw-r--r--src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/HostMetaDiscoveryService.cs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/HostMetaDiscoveryService.cs b/src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/HostMetaDiscoveryService.cs
index 6a517ad..910272e 100644
--- a/src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/HostMetaDiscoveryService.cs
+++ b/src/DotNetOpenAuth.OpenId.RelyingParty/OpenId/HostMetaDiscoveryService.cs
@@ -42,7 +42,7 @@ namespace DotNetOpenAuth.OpenId {
/// and the XMLDSig spec referenced in that spec can be found at:
/// http://wiki.oasis-open.org/xri/XrdOne/XmlDsigProfile
/// </remarks>
- public class HostMetaDiscoveryService : IIdentifierDiscoveryService {
+ public class HostMetaDiscoveryService : IIdentifierDiscoveryService, IRequireHostFactories {
/// <summary>
/// The URI template for discovery host-meta on domains hosted by
/// Google Apps for Domains.
@@ -67,14 +67,11 @@ namespace DotNetOpenAuth.OpenId {
/// <summary>
/// Initializes a new instance of the <see cref="HostMetaDiscoveryService"/> class.
/// </summary>
- public HostMetaDiscoveryService(IHostFactories hostFactories) {
- Requires.NotNull(hostFactories, "hostFactories");
-
+ public HostMetaDiscoveryService() {
this.TrustedHostMetaProxies = new List<HostMetaProxy>();
- this.HostFactories = hostFactories;
}
- public IHostFactories HostFactories { get; private set; }
+ public IHostFactories HostFactories { get; set; }
/// <summary>
/// Gets the set of URI templates to use to contact host-meta hosting proxies
@@ -117,6 +114,10 @@ namespace DotNetOpenAuth.OpenId {
/// A sequence of service endpoints yielded by discovery. Must not be null, but may be empty.
/// </returns>
public async Task<IdentifierDiscoveryServiceResult> DiscoverAsync(Identifier identifier, CancellationToken cancellationToken) {
+ Requires.NotNull(identifier, "identifier");
+ Verify.Operation(this.HostFactories != null, Strings.HostFactoriesRequired);
+ cancellationToken.ThrowIfCancellationRequested();
+
// Google Apps are always URIs -- not XRIs.
var uriIdentifier = identifier as UriIdentifier;
if (uriIdentifier == null) {