//----------------------------------------------------------------------- // // Copyright (c) Outercurve Foundation. All rights reserved. // //----------------------------------------------------------------------- namespace DotNetOpenAuth.OpenId.Messages { using System; using System.Collections.Generic; using System.Linq; using System.Text; using DotNetOpenAuth.Messaging; /// /// The contract any OpenID extension for DotNetOpenAuth must implement. /// /// /// Classes that implement this interface should be marked as /// [] to allow serializing state servers /// to cache messages, particularly responses. /// public interface IOpenIdMessageExtension : IExtensionMessage { /// /// Gets the TypeURI the extension uses in the OpenID protocol and in XRDS advertisements. /// string TypeUri { get; } /// /// Gets the additional TypeURIs that are supported by this extension, in preferred order. /// May be empty if none other than is supported, but /// should not be null. /// /// /// Useful for reading in messages with an older version of an extension. /// The value in the property is always checked before /// trying this list. /// If you do support multiple versions of an extension using this method, /// consider adding a CreateResponse method to your request extension class /// so that the response can have the context it needs to remain compatible /// given the version of the extension in the request message. /// The for an example. /// IEnumerable AdditionalSupportedTypeUris { get; } /// /// Gets or sets a value indicating whether this extension was /// signed by the sender. /// /// /// true if this instance is signed by the sender; otherwise, false. /// bool IsSignedByRemoteParty { get; set; } } }