summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenId/XriIdentifier.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenId/XriIdentifier.cs')
-rw-r--r--src/DotNetOpenId/XriIdentifier.cs16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/DotNetOpenId/XriIdentifier.cs b/src/DotNetOpenId/XriIdentifier.cs
index d6e7830..b412e79 100644
--- a/src/DotNetOpenId/XriIdentifier.cs
+++ b/src/DotNetOpenId/XriIdentifier.cs
@@ -74,8 +74,20 @@ namespace DotNetOpenId {
return new XrdsDocument(XmlReader.Create(xrdsResponse.ResponseStream));
}
- internal override ServiceEndpoint Discover() {
- return downloadXrds().CreateServiceEndpoint(this);
+ internal override IEnumerable<ServiceEndpoint> Discover() {
+ return downloadXrds().CreateServiceEndpoints(this, this);
+ }
+
+ /// <summary>
+ /// Performs discovery on THIS identifier, but generates <see cref="ServiceEndpoint"/>
+ /// instances that treat another given identifier as the user-supplied identifier.
+ /// </summary>
+ internal IEnumerable<ServiceEndpoint> Discover(XriIdentifier userSuppliedIdentifier) {
+ return downloadXrds().CreateServiceEndpoints(this, userSuppliedIdentifier);
+ }
+
+ internal override Identifier TrimFragment() {
+ return this;
}
public override bool Equals(object obj) {