public virtual void OnAbort()
 {
     if (!ActAsInitiator)
     {
         foreach (SupportingTokenAuthenticatorSpecification spec in ChannelSupportingTokenAuthenticatorSpecification)
         {
             SecurityUtils.AbortTokenAuthenticatorIfRequired(spec.TokenAuthenticator);
         }
         foreach (string action in ScopedSupportingTokenAuthenticatorSpecification.Keys)
         {
             ICollection <SupportingTokenAuthenticatorSpecification> supportingAuthenticators = ScopedSupportingTokenAuthenticatorSpecification[action];
             foreach (SupportingTokenAuthenticatorSpecification spec in supportingAuthenticators)
             {
                 SecurityUtils.AbortTokenAuthenticatorIfRequired(spec.TokenAuthenticator);
             }
         }
     }
 }