示例#1
0
        /// <summary>
        /// Records the feature and dependency use.
        /// </summary>
        /// <param name="value">The consumer or service provider.</param>
        /// <param name="service">The service.</param>
        /// <param name="tokenManager">The token manager.</param>
        /// <param name="nonceStore">The nonce store.</param>
        internal static void RecordFeatureAndDependencyUse(object value, ServiceProviderHostDescription service, ITokenManager tokenManager, INonceStore nonceStore)
        {
            Requires.NotNull(value, "value");
            Requires.NotNull(service, "service");
            Requires.NotNull(tokenManager, "tokenManager");

            // In release builds, just quietly return.
            if (value == null || service == null || tokenManager == null)
            {
                return;
            }

            if (Reporting.Enabled && Reporting.Configuration.IncludeFeatureUsage)
            {
                StringBuilder builder = new StringBuilder();
                builder.Append(value.GetType().Name);
                builder.Append(" ");
                builder.Append(tokenManager.GetType().Name);
                if (nonceStore != null)
                {
                    builder.Append(" ");
                    builder.Append(nonceStore.GetType().Name);
                }
                builder.Append(" ");
                builder.Append(service.UserAuthorizationEndpoint != null ? service.UserAuthorizationEndpoint.Location.AbsoluteUri : string.Empty);
                Reporting.ObservedFeatures.Add(builder.ToString());
                Reporting.Touch();
            }
        }
示例#2
0
        /// <summary>
        /// Records the feature and dependency use.
        /// </summary>
        /// <param name="value">The consumer or service provider.</param>
        /// <param name="service">The service.</param>
        /// <param name="tokenManager">The token manager.</param>
        /// <param name="nonceStore">The nonce store.</param>
        internal static void RecordFeatureAndDependencyUse(object value, ServiceProviderDescription service, ITokenManager tokenManager, INonceStore nonceStore)
        {
            Contract.Requires(value != null);
            Contract.Requires(service != null);
            Contract.Requires(tokenManager != null);

            // In release builds, just quietly return.
            if (value == null || service == null || tokenManager == null)
            {
                return;
            }

            if (Reporting.Enabled && Reporting.Configuration.IncludeFeatureUsage)
            {
                StringBuilder builder = new StringBuilder();
                builder.Append(value.GetType().Name);
                builder.Append(" ");
                builder.Append(tokenManager.GetType().Name);
                if (nonceStore != null)
                {
                    builder.Append(" ");
                    builder.Append(nonceStore.GetType().Name);
                }
                builder.Append(" ");
                builder.Append(service.Version);
                builder.Append(" ");
                builder.Append(service.UserAuthorizationEndpoint);
                Reporting.ObservedFeatures.Add(builder.ToString());
                Reporting.Touch();
            }
        }
示例#3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XrdsPublisher"/> class.
 /// </summary>
 public XrdsPublisher()
 {
     Reporting.RecordFeatureUse(this);
 }