diff options
Diffstat (limited to 'src')
21 files changed, 44 insertions, 4 deletions
diff --git a/src/DotNetOpenAuth/Messaging/EmptyDictionary.cs b/src/DotNetOpenAuth/Messaging/EmptyDictionary.cs index df2f5a7..22c947a 100644 --- a/src/DotNetOpenAuth/Messaging/EmptyDictionary.cs +++ b/src/DotNetOpenAuth/Messaging/EmptyDictionary.cs @@ -14,6 +14,7 @@ namespace DotNetOpenAuth.Messaging { /// </summary> /// <typeparam name="TKey">The type of the key.</typeparam> /// <typeparam name="TValue">The type of the value.</typeparam> + [Serializable] internal class EmptyDictionary<TKey, TValue> : IDictionary<TKey, TValue> { /// <summary> /// The singleton instance of the empty dictionary. diff --git a/src/DotNetOpenAuth/Messaging/EmptyList.cs b/src/DotNetOpenAuth/Messaging/EmptyList.cs index e9a83e9..b418623 100644 --- a/src/DotNetOpenAuth/Messaging/EmptyList.cs +++ b/src/DotNetOpenAuth/Messaging/EmptyList.cs @@ -12,6 +12,7 @@ namespace DotNetOpenAuth.Messaging { /// An empty, read-only list. /// </summary> /// <typeparam name="T">The type the list claims to include.</typeparam> + [Serializable] internal class EmptyList<T> : IList<T> { /// <summary> /// The singleton instance of the empty list. diff --git a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchRequest.cs b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchRequest.cs index 8386bce..0ba75bb 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchRequest.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchRequest.cs @@ -15,6 +15,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.AttributeExchange { /// <summary> /// The Attribute Exchange Fetch message, request leg. /// </summary> + [Serializable] public sealed class FetchRequest : ExtensionBase, IMessageWithEvents { /// <summary> /// The factory method that may be used in deserialization of this message. diff --git a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchResponse.cs b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchResponse.cs index 1b3c05b..8395253 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchResponse.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchResponse.cs @@ -16,6 +16,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.AttributeExchange { /// <summary> /// The Attribute Exchange Fetch message, response leg. /// </summary> + [Serializable] public sealed class FetchResponse : ExtensionBase, IMessageWithEvents { /// <summary> /// The factory method that may be used in deserialization of this message. diff --git a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/StoreRequest.cs b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/StoreRequest.cs index 41f5a2f..b4df366 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/StoreRequest.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/StoreRequest.cs @@ -14,6 +14,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.AttributeExchange { /// <summary> /// The Attribute Exchange Store message, request leg. /// </summary> + [Serializable] public sealed class StoreRequest : ExtensionBase, IMessageWithEvents { /// <summary> /// The factory method that may be used in deserialization of this message. diff --git a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/StoreResponse.cs b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/StoreResponse.cs index 97178b6..5f80bbe 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/StoreResponse.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/StoreResponse.cs @@ -12,6 +12,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.AttributeExchange { /// <summary> /// The Attribute Exchange Store message, response leg. /// </summary> + [Serializable] public sealed class StoreResponse : ExtensionBase { /// <summary> /// The factory method that may be used in deserialization of this message. diff --git a/src/DotNetOpenAuth/OpenId/Extensions/ExtensionBase.cs b/src/DotNetOpenAuth/OpenId/Extensions/ExtensionBase.cs index 27700eb..3ca979d 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/ExtensionBase.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/ExtensionBase.cs @@ -15,6 +15,7 @@ namespace DotNetOpenAuth.OpenId.Extensions { /// <summary> /// A handy base class for built-in extensions. /// </summary> + [Serializable] public class ExtensionBase : IOpenIdMessageExtension { /// <summary> /// Backing store for the <see cref="IOpenIdMessageExtension.TypeUri"/> property. diff --git a/src/DotNetOpenAuth/OpenId/Extensions/ProviderAuthenticationPolicy/PolicyRequest.cs b/src/DotNetOpenAuth/OpenId/Extensions/ProviderAuthenticationPolicy/PolicyRequest.cs index e3611e9..5b319be 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/ProviderAuthenticationPolicy/PolicyRequest.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/ProviderAuthenticationPolicy/PolicyRequest.cs @@ -13,6 +13,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.ProviderAuthenticationPolicy { /// <summary> /// The PAPE request part of an OpenID Authentication request message. /// </summary> + [Serializable] public sealed class PolicyRequest : ExtensionBase, IMessageWithEvents { /// <summary> /// The factory method that may be used in deserialization of this message. diff --git a/src/DotNetOpenAuth/OpenId/Extensions/ProviderAuthenticationPolicy/PolicyResponse.cs b/src/DotNetOpenAuth/OpenId/Extensions/ProviderAuthenticationPolicy/PolicyResponse.cs index 4817a4e..ff03400 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/ProviderAuthenticationPolicy/PolicyResponse.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/ProviderAuthenticationPolicy/PolicyResponse.cs @@ -15,6 +15,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.ProviderAuthenticationPolicy { /// <summary> /// The PAPE response part of an OpenID Authentication response message. /// </summary> + [Serializable] public sealed class PolicyResponse : ExtensionBase, IMessageWithEvents { /// <summary> /// The factory method that may be used in deserialization of this message. diff --git a/src/DotNetOpenAuth/OpenId/Extensions/SimpleRegistration/ClaimsRequest.cs b/src/DotNetOpenAuth/OpenId/Extensions/SimpleRegistration/ClaimsRequest.cs index 99e937e..827bca2 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/SimpleRegistration/ClaimsRequest.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/SimpleRegistration/ClaimsRequest.cs @@ -17,6 +17,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.SimpleRegistration { /// <summary> /// Carries the request/require/none demand state of the simple registration fields. /// </summary> + [Serializable] public sealed class ClaimsRequest : ExtensionBase { /// <summary> /// The factory method that may be used in deserialization of this message. diff --git a/src/DotNetOpenAuth/OpenId/Extensions/SimpleRegistration/ClaimsResponse.cs b/src/DotNetOpenAuth/OpenId/Extensions/SimpleRegistration/ClaimsResponse.cs index 5e17b44..1d40eec 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/SimpleRegistration/ClaimsResponse.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/SimpleRegistration/ClaimsResponse.cs @@ -20,6 +20,7 @@ namespace DotNetOpenAuth.OpenId.Extensions.SimpleRegistration { /// A struct storing Simple Registration field values describing an /// authenticating user. /// </summary> + [Serializable] public sealed class ClaimsResponse : ExtensionBase, IClientScriptExtensionResponse, IMessageWithEvents { /// <summary> /// The factory method that may be used in deserialization of this message. diff --git a/src/DotNetOpenAuth/OpenId/Messages/CheckIdRequest.cs b/src/DotNetOpenAuth/OpenId/Messages/CheckIdRequest.cs index a983bf3..09c36a5 100644 --- a/src/DotNetOpenAuth/OpenId/Messages/CheckIdRequest.cs +++ b/src/DotNetOpenAuth/OpenId/Messages/CheckIdRequest.cs @@ -20,6 +20,7 @@ namespace DotNetOpenAuth.OpenId.Messages { /// This message type satisfies OpenID 2.0 section 9.1. /// </remarks> [DebuggerDisplay("OpenID {Version} {Mode} {ClaimedIdentifier}")] + [Serializable] internal class CheckIdRequest : SignedResponseRequest { /// <summary> /// Initializes a new instance of the <see cref="CheckIdRequest"/> class. diff --git a/src/DotNetOpenAuth/OpenId/Messages/IndirectResponseBase.cs b/src/DotNetOpenAuth/OpenId/Messages/IndirectResponseBase.cs index 322ec60..1147790 100644 --- a/src/DotNetOpenAuth/OpenId/Messages/IndirectResponseBase.cs +++ b/src/DotNetOpenAuth/OpenId/Messages/IndirectResponseBase.cs @@ -14,6 +14,7 @@ namespace DotNetOpenAuth.OpenId.Messages { /// <summary> /// A common base class from which indirect response messages should derive. /// </summary> + [Serializable] internal class IndirectResponseBase : RequestBase { /// <summary> /// Initializes a new instance of the <see cref="IndirectResponseBase"/> class. diff --git a/src/DotNetOpenAuth/OpenId/Messages/IndirectSignedResponse.cs b/src/DotNetOpenAuth/OpenId/Messages/IndirectSignedResponse.cs index 7e9f054..e5c4e3a 100644 --- a/src/DotNetOpenAuth/OpenId/Messages/IndirectSignedResponse.cs +++ b/src/DotNetOpenAuth/OpenId/Messages/IndirectSignedResponse.cs @@ -24,6 +24,7 @@ namespace DotNetOpenAuth.OpenId.Messages { /// payload is signed so the Relying Party can verify it has not been tampered with. /// </summary> [DebuggerDisplay("OpenID {Version} {Mode} (no id assertion)")] + [Serializable] internal class IndirectSignedResponse : IndirectResponseBase, ITamperResistantOpenIdMessage, IProtocolMessageWithExtensions { /// <summary> /// The allowed date/time formats for the response_nonce parameter. diff --git a/src/DotNetOpenAuth/OpenId/Messages/NegativeAssertionResponse.cs b/src/DotNetOpenAuth/OpenId/Messages/NegativeAssertionResponse.cs index 2e742ea..433bd4d 100644 --- a/src/DotNetOpenAuth/OpenId/Messages/NegativeAssertionResponse.cs +++ b/src/DotNetOpenAuth/OpenId/Messages/NegativeAssertionResponse.cs @@ -16,6 +16,7 @@ namespace DotNetOpenAuth.OpenId.Messages { /// The message OpenID Providers send back to Relying Parties to refuse /// to assert the identity of a user. /// </summary> + [Serializable] internal class NegativeAssertionResponse : IndirectResponseBase { /// <summary> /// Initializes a new instance of the <see cref="NegativeAssertionResponse"/> class. diff --git a/src/DotNetOpenAuth/OpenId/Messages/PositiveAssertionResponse.cs b/src/DotNetOpenAuth/OpenId/Messages/PositiveAssertionResponse.cs index b167dc8..006ea93 100644 --- a/src/DotNetOpenAuth/OpenId/Messages/PositiveAssertionResponse.cs +++ b/src/DotNetOpenAuth/OpenId/Messages/PositiveAssertionResponse.cs @@ -21,6 +21,7 @@ namespace DotNetOpenAuth.OpenId.Messages { /// user operating the user agent is in fact some specific user known to the Provider. /// </summary> [DebuggerDisplay("OpenID {Version} {Mode} {LocalIdentifier}")] + [Serializable] internal class PositiveAssertionResponse : IndirectSignedResponse { /// <summary> /// Initializes a new instance of the <see cref="PositiveAssertionResponse"/> class. diff --git a/src/DotNetOpenAuth/OpenId/Messages/RequestBase.cs b/src/DotNetOpenAuth/OpenId/Messages/RequestBase.cs index 3339e2e..80ce308 100644 --- a/src/DotNetOpenAuth/OpenId/Messages/RequestBase.cs +++ b/src/DotNetOpenAuth/OpenId/Messages/RequestBase.cs @@ -15,6 +15,7 @@ namespace DotNetOpenAuth.OpenId.Messages { /// A common base class for OpenID request messages and indirect responses (since they are ultimately requests). /// </summary> [DebuggerDisplay("OpenID {Version} {Mode}")] + [Serializable] internal class RequestBase : IDirectedProtocolMessage { /// <summary> /// The openid.ns parameter in the message. diff --git a/src/DotNetOpenAuth/OpenId/Messages/SignedResponseRequest.cs b/src/DotNetOpenAuth/OpenId/Messages/SignedResponseRequest.cs index 9f3fbaf..9330af7 100644 --- a/src/DotNetOpenAuth/OpenId/Messages/SignedResponseRequest.cs +++ b/src/DotNetOpenAuth/OpenId/Messages/SignedResponseRequest.cs @@ -17,6 +17,7 @@ namespace DotNetOpenAuth.OpenId.Messages { /// An indirect request from a Relying Party to a Provider where the response /// is expected to be signed. /// </summary> + [Serializable] internal class SignedResponseRequest : RequestBase, IProtocolMessageWithExtensions { /// <summary> /// Backing store for the <see cref="Extensions"/> property. diff --git a/src/DotNetOpenAuth/OpenId/Provider/AuthenticationRequest.cs b/src/DotNetOpenAuth/OpenId/Provider/AuthenticationRequest.cs index 0a27f95..fba41f4 100644 --- a/src/DotNetOpenAuth/OpenId/Provider/AuthenticationRequest.cs +++ b/src/DotNetOpenAuth/OpenId/Provider/AuthenticationRequest.cs @@ -18,6 +18,7 @@ namespace DotNetOpenAuth.OpenId.Provider { /// so that OpenID Provider sites can easily respond to authentication /// requests. /// </summary> + [Serializable] internal class AuthenticationRequest : Request, IAuthenticationRequest { /// <summary> /// The positive assertion to send, if the host site chooses to send it. diff --git a/src/DotNetOpenAuth/OpenId/Provider/Request.cs b/src/DotNetOpenAuth/OpenId/Provider/Request.cs index 764e5b0..c32c149 100644 --- a/src/DotNetOpenAuth/OpenId/Provider/Request.cs +++ b/src/DotNetOpenAuth/OpenId/Provider/Request.cs @@ -16,6 +16,7 @@ namespace DotNetOpenAuth.OpenId.Provider { /// Implements the <see cref="IRequest"/> interface for all incoming /// request messages to an OpenID Provider. /// </summary> + [Serializable] internal abstract class Request : IRequest { /// <summary> /// The incoming request message. @@ -29,6 +30,17 @@ namespace DotNetOpenAuth.OpenId.Provider { private readonly IProtocolMessageWithExtensions extensibleMessage; /// <summary> + /// The version of the OpenID protocol to use. + /// </summary> + private readonly Version protocolVersion; + + /// <summary> + /// Backing store for the <see cref="Protocol"/> property. + /// </summary> + [NonSerialized] + private Protocol protocol; + + /// <summary> /// The list of extensions to add to the response message. /// </summary> private List<IOpenIdMessageExtension> responseExtensions = new List<IOpenIdMessageExtension>(); @@ -41,7 +53,7 @@ namespace DotNetOpenAuth.OpenId.Provider { ErrorUtilities.VerifyArgumentNotNull(request, "request"); this.request = request; - this.Protocol = Protocol.Lookup(this.request.Version); + this.protocolVersion = this.request.Version; this.extensibleMessage = request as IProtocolMessageWithExtensions; } @@ -52,7 +64,7 @@ namespace DotNetOpenAuth.OpenId.Provider { protected Request(Version version) { ErrorUtilities.VerifyArgumentNotNull(version, "version"); - this.Protocol = Protocol.Lookup(version); + this.protocolVersion = version; } #region IRequest Members @@ -109,9 +121,17 @@ namespace DotNetOpenAuth.OpenId.Provider { protected abstract IProtocolMessage ResponseMessage { get; } /// <summary> - /// Gets the protocol version used in the request.. + /// Gets the protocol version used in the request. /// </summary> - protected Protocol Protocol { get; private set; } + protected Protocol Protocol { + get { + if (this.protocol == null) { + this.protocol = Protocol.Lookup(this.protocolVersion); + } + + return this.protocol; + } + } #region IRequest Methods diff --git a/src/DotNetOpenAuth/OpenId/Realm.cs b/src/DotNetOpenAuth/OpenId/Realm.cs index b3b86e0..de8a83d 100644 --- a/src/DotNetOpenAuth/OpenId/Realm.cs +++ b/src/DotNetOpenAuth/OpenId/Realm.cs @@ -24,6 +24,7 @@ namespace DotNetOpenAuth.OpenId { /// This fills the OpenID Authentication 2.0 specification for realms. /// See http://openid.net/specs/openid-authentication-2_0.html#realms /// </remarks> + [Serializable] public class Realm { /// <summary> /// A regex used to detect a wildcard that is being used in the realm. |