示例#1
0
 void IPolicyExportExtension.ExportPolicy(MetadataExporter exporter, PolicyConversionContext context)
 {
     if (exporter == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("exporter");
     }
     if (context == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
     }
     SecurityBindingElement.ExportPolicyForTransportTokenAssertionProviders(exporter, context);
 }
        void IPolicyExportExtension.ExportPolicy(MetadataExporter exporter, PolicyConversionContext policyContext)
        {
            if (exporter == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("exporter");
            }
            if (policyContext == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("policyContext");
            }

            if (policyContext.BindingElements.Find <ITransportTokenAssertionProvider>() == null)
            {
                if (!this.AllowInsecureTransport)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ExportOfBindingWithTransportSecurityBindingElementAndNoTransportSecurityNotSupported)));
                }

                // In AllowInsecureTransport mode there is no assertion provider to export the endpoint supporting tokens. Hence we explicitly call into ExportPolicyForTransportTokenAssertionProviders.
                SecurityBindingElement.ExportPolicyForTransportTokenAssertionProviders(exporter, policyContext);
            }

            // the ITransportTokenAssertionProvider will perform the acutal export steps.
        }
 internal override void OnExportPolicy(MetadataExporter exporter, PolicyConversionContext context)
 {
     base.OnExportPolicy(exporter, context);
     SecurityBindingElement.ExportPolicyForTransportTokenAssertionProviders(exporter, context);
 }