System.ServiceModel.EndpointAddress.Equals C# (CSharp) Метод

Equals() публичный Метод

public Equals ( object obj ) : bool
obj object
Результат bool
		public override bool Equals (object obj)
		{
			EndpointAddress other = obj as EndpointAddress;
			if (other == null || 
			    other.Uri == null || !other.Uri.Equals (this.Uri) ||
			    other.Headers.Count != this.Headers.Count)
				return false;

			foreach (AddressHeader h in this.Headers) {
				bool match = false;
				foreach (AddressHeader o in other.Headers)
					if (h.Equals (o)) {
						match = true;
						break;
					}
				if (!match)
					return false;
			}

			return true;
		}

Usage Example

        private IssuedSecurityTokenProvider CreateIssuedSecurityTokenProvider(InitiatorServiceModelSecurityTokenRequirement initiatorRequirement)
        {
            KeyedByTypeCollection <IEndpointBehavior> localIssuerChannelBehaviors;
            MessageSecurityVersion     version;
            SecurityTokenSerializer    serializer;
            ChannelParameterCollection parameters2;

            if (initiatorRequirement.TargetAddress == null)
            {
                throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(System.ServiceModel.SR.GetString("TokenRequirementDoesNotSpecifyTargetAddress", new object[] { initiatorRequirement }));
            }
            SecurityBindingElement securityBindingElement = initiatorRequirement.SecurityBindingElement;

            if (securityBindingElement == null)
            {
                throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(System.ServiceModel.SR.GetString("TokenProviderRequiresSecurityBindingElement", new object[] { initiatorRequirement }));
            }
            EndpointAddress issuerAddress = initiatorRequirement.IssuerAddress;
            Binding         issuerBinding = initiatorRequirement.IssuerBinding;
            bool            flag          = (issuerAddress == null) || issuerAddress.Equals(EndpointAddress.AnonymousAddress);

            if (flag)
            {
                issuerAddress = this.parent.IssuedToken.LocalIssuerAddress;
                issuerBinding = this.parent.IssuedToken.LocalIssuerBinding;
            }
            if (issuerAddress == null)
            {
                throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.ServiceModel.SR.GetString("StsAddressNotSet", new object[] { initiatorRequirement.TargetAddress })));
            }
            if (issuerBinding == null)
            {
                throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.ServiceModel.SR.GetString("StsBindingNotSet", new object[] { issuerAddress })));
            }
            Uri uri = issuerAddress.Uri;

            if (!this.parent.IssuedToken.IssuerChannelBehaviors.TryGetValue(issuerAddress.Uri, out localIssuerChannelBehaviors) && flag)
            {
                localIssuerChannelBehaviors = this.parent.IssuedToken.LocalIssuerChannelBehaviors;
            }
            IssuedSecurityTokenProvider federationTokenProvider = new IssuedSecurityTokenProvider(this.GetCredentialsHandle(initiatorRequirement))
            {
                TargetAddress = initiatorRequirement.TargetAddress
            };

            this.CopyIssuerChannelBehaviorsAndAddSecurityCredentials(federationTokenProvider, localIssuerChannelBehaviors, issuerAddress);
            federationTokenProvider.CacheIssuedTokens         = this.parent.IssuedToken.CacheIssuedTokens;
            federationTokenProvider.IdentityVerifier          = securityBindingElement.LocalClientSettings.IdentityVerifier;
            federationTokenProvider.IssuerAddress             = issuerAddress;
            federationTokenProvider.IssuerBinding             = issuerBinding;
            federationTokenProvider.KeyEntropyMode            = this.GetIssuerBindingKeyEntropyModeOrDefault(issuerBinding);
            federationTokenProvider.MaxIssuedTokenCachingTime = this.parent.IssuedToken.MaxIssuedTokenCachingTime;
            federationTokenProvider.SecurityAlgorithmSuite    = initiatorRequirement.SecurityAlgorithmSuite;
            IssuedSecurityTokenParameters property = initiatorRequirement.GetProperty <IssuedSecurityTokenParameters>(ServiceModelSecurityTokenRequirement.IssuedSecurityTokenParametersProperty);

            this.GetIssuerBindingSecurityVersion(issuerBinding, property.DefaultMessageSecurityVersion, initiatorRequirement.SecurityBindingElement, out version, out serializer);
            federationTokenProvider.MessageSecurityVersion  = version;
            federationTokenProvider.SecurityTokenSerializer = serializer;
            federationTokenProvider.IssuedTokenRenewalThresholdPercentage = this.parent.IssuedToken.IssuedTokenRenewalThresholdPercentage;
            IEnumerable <XmlElement> enumerable = property.CreateRequestParameters(version, serializer);

            if (enumerable != null)
            {
                foreach (XmlElement element2 in enumerable)
                {
                    federationTokenProvider.TokenRequestParameters.Add(element2);
                }
            }
            if (initiatorRequirement.TryGetProperty <ChannelParameterCollection>(ServiceModelSecurityTokenRequirement.ChannelParametersCollectionProperty, out parameters2))
            {
                federationTokenProvider.ChannelParameters = parameters2;
            }
            return(federationTokenProvider);
        }
All Usage Examples Of System.ServiceModel.EndpointAddress::Equals