//----------------------------------------------------------------------- // // Copyright (c) Outercurve Foundation. All rights reserved. // //----------------------------------------------------------------------- namespace DotNetOpenAuth.OpenId.ChannelElements { using System.Collections.Generic; using DotNetOpenAuth.Messaging; using DotNetOpenAuth.OpenId.Messages; /// /// OpenID extension factory class for creating extensions based on received Type URIs. /// /// /// OpenID extension factories must be registered with the library. This can be /// done by adding a factory to OpenIdRelyingParty.ExtensionFactories /// or OpenIdProvider.ExtensionFactories, or by adding a snippet /// such as the following to your web.config file: /// /// <dotNetOpenAuth> /// <openid> /// <extensionFactories> /// <add type="DotNetOpenAuth.ApplicationBlock.CustomExtensions.Acme, DotNetOpenAuth.ApplicationBlock" /> /// </extensionFactories> /// </openid> /// </dotNetOpenAuth> /// /// public interface IOpenIdExtensionFactory { /// /// Creates a new instance of some extension based on the received extension parameters. /// /// The type URI of the extension. /// The parameters associated specifically with this extension. /// The OpenID message carrying this extension. /// A value indicating whether this extension is being received at the OpenID Provider. /// /// An instance of if the factory recognizes /// the extension described in the input parameters; null otherwise. /// /// /// This factory method need only initialize properties in the instantiated extension object /// that are not bound using . /// IOpenIdMessageExtension Create(string typeUri, IDictionary data, IProtocolMessageWithExtensions baseMessage, bool isProviderRole); } }