示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ConsumerBase"/> class.
        /// </summary>
        /// <param name="serviceDescription">The endpoints and behavior of the Service Provider.</param>
        /// <param name="tokenManager">The host's method of storing and recalling tokens and secrets.</param>
        protected ConsumerBase(ServiceProviderDescription serviceDescription, IConsumerTokenManager tokenManager)
        {
            ErrorUtilities.VerifyArgumentNotNull(serviceDescription, "serviceDescription");
            ErrorUtilities.VerifyArgumentNotNull(tokenManager, "tokenManager");

            ITamperProtectionChannelBindingElement signingElement = serviceDescription.CreateTamperProtectionElement();
            INonceStore store = new NonceMemoryStore(StandardExpirationBindingElement.DefaultMaximumMessageAge);
            this.OAuthChannel = new OAuthChannel(signingElement, store, tokenManager);
            this.ServiceProvider = serviceDescription;
            this.SecuritySettings = DotNetOpenAuthSection.Configuration.OAuth.Consumer.SecuritySettings.CreateSecuritySettings();
        }
示例#2
0
		/// <summary>
		/// Initializes a new instance of the <see cref="ConsumerBase"/> class.
		/// </summary>
		/// <param name="serviceDescription">The endpoints and behavior of the Service Provider.</param>
		/// <param name="tokenManager">The host's method of storing and recalling tokens and secrets.</param>
		protected ConsumerBase(ServiceProviderDescription serviceDescription, IConsumerTokenManager tokenManager) {
			Contract.Requires<ArgumentNullException>(serviceDescription != null);
			Contract.Requires<ArgumentNullException>(tokenManager != null);

			ITamperProtectionChannelBindingElement signingElement = serviceDescription.CreateTamperProtectionElement();
			INonceStore store = new NonceMemoryStore(StandardExpirationBindingElement.MaximumMessageAge);
			this.SecuritySettings = DotNetOpenAuthSection.Configuration.OAuth.Consumer.SecuritySettings.CreateSecuritySettings();
			this.OAuthChannel = new OAuthChannel(signingElement, store, tokenManager, this.SecuritySettings);
			this.ServiceProvider = serviceDescription;

			Reporting.RecordFeatureAndDependencyUse(this, serviceDescription, tokenManager, null);
		}
示例#3
0
		/// <summary>
		/// Initializes a new instance of the <see cref="ConsumerBase"/> class.
		/// </summary>
		/// <param name="serviceDescription">The endpoints and behavior of the Service Provider.</param>
		/// <param name="tokenManager">The host's method of storing and recalling tokens and secrets.</param>
		protected ConsumerBase(ServiceProviderDescription serviceDescription, IConsumerTokenManager tokenManager) {
			Requires.NotNull(serviceDescription, "serviceDescription");
			Requires.NotNull(tokenManager, "tokenManager");

			ITamperProtectionChannelBindingElement signingElement = serviceDescription.CreateTamperProtectionElement();
			INonceStore store = new NonceMemoryStore(StandardExpirationBindingElement.MaximumMessageAge);
			this.SecuritySettings = OAuthElement.Configuration.Consumer.SecuritySettings.CreateSecuritySettings();
			this.OAuthChannel = new OAuthConsumerChannel(signingElement, store, tokenManager, this.SecuritySettings);
			this.ServiceProvider = serviceDescription;

			OAuthReporting.RecordFeatureAndDependencyUse(this, serviceDescription, tokenManager, null);
		}
示例#4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ConsumerBase"/> class.
        /// </summary>
        /// <param name="serviceDescription">The endpoints and behavior of the Service Provider.</param>
        /// <param name="tokenManager">The host's method of storing and recalling tokens and secrets.</param>
        protected ConsumerBase(ServiceProviderDescription serviceDescription, ITokenManager tokenManager)
        {
            if (serviceDescription == null) {
                throw new ArgumentNullException("serviceDescription");
            }
            if (tokenManager == null) {
                throw new ArgumentNullException("tokenManager");
            }

            ITamperProtectionChannelBindingElement signingElement = serviceDescription.CreateTamperProtectionElement();
            INonceStore store = new NonceMemoryStore(StandardExpirationBindingElement.DefaultMaximumMessageAge);
            this.OAuthChannel = new OAuthChannel(signingElement, store, tokenManager, new OAuthConsumerMessageFactory());
            this.ServiceProvider = serviceDescription;
        }
示例#5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ServiceProvider"/> class.
        /// </summary>
        /// <param name="serviceDescription">The endpoints and behavior on the Service Provider.</param>
        /// <param name="tokenManager">The host's method of storing and recalling tokens and secrets.</param>
        /// <param name="messageTypeProvider">An object that can figure out what type of message is being received for deserialization.</param>
        public ServiceProvider(ServiceProviderDescription serviceDescription, ITokenManager tokenManager, OAuthServiceProviderMessageFactory messageTypeProvider)
        {
            if (serviceDescription == null) {
                throw new ArgumentNullException("serviceDescription");
            }
            if (tokenManager == null) {
                throw new ArgumentNullException("tokenManager");
            }
            if (messageTypeProvider == null) {
                throw new ArgumentNullException("messageTypeProvider");
            }

            var signingElement = serviceDescription.CreateTamperProtectionElement();
            INonceStore store = new NonceMemoryStore(StandardExpirationBindingElement.DefaultMaximumMessageAge);
            this.ServiceDescription = serviceDescription;
            this.OAuthChannel = new OAuthChannel(signingElement, store, tokenManager, messageTypeProvider);
            this.TokenGenerator = new StandardTokenGenerator();
        }
示例#6
0
		/// <summary>
		/// Gets the standard state storage mechanism that uses ASP.NET's
		/// HttpApplication state dictionary to store associations and nonces.
		/// </summary>
		/// <param name="context">The HTTP context. If <c>null</c>, this method must be called while <see cref="HttpContext.Current"/> is non-null.</param>
		/// <returns>The nonce store.</returns>
		public static INonceStore GetHttpApplicationStore(HttpContextBase context = null) {
			if (context == null) {
				ErrorUtilities.VerifyOperation(HttpContext.Current != null, Strings.StoreRequiredWhenNoHttpContextAvailable, typeof(INonceStore).Name);
				context = new HttpContextWrapper(HttpContext.Current);
			}

			var store = (INonceStore)context.Application[ApplicationStoreKey];
			if (store == null) {
				context.Application.Lock();
				try {
					if ((store = (INonceStore)context.Application[ApplicationStoreKey]) == null) {
						context.Application[ApplicationStoreKey] = store = new NonceMemoryStore(StandardExpirationBindingElement.MaximumMessageAge);
					}
				} finally {
					context.Application.UnLock();
				}
			}

			return store;
		}