本文整理汇总了C#中System.ServiceModel.Description.MetadataImporter.ImportPolicy方法的典型用法代码示例。如果您正苦于以下问题:C# MetadataImporter.ImportPolicy方法的具体用法?C# MetadataImporter.ImportPolicy怎么用?C# MetadataImporter.ImportPolicy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.ServiceModel.Description.MetadataImporter
的用法示例。
在下文中一共展示了MetadataImporter.ImportPolicy方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TryImportWsspBootstrapPolicyAssertion
public virtual bool TryImportWsspBootstrapPolicyAssertion(MetadataImporter importer, ICollection<XmlElement> assertions, SecureConversationSecurityTokenParameters parameters)
{
bool result = false;
XmlElement assertion;
Collection<Collection<XmlElement>> alternatives;
if (TryImportWsspAssertion(assertions, BootstrapPolicyName, out assertion)
&& TryGetNestedPolicyAlternatives(importer, assertion, out alternatives))
{
BindingElementCollection bindingElements;
importer.State[SecurityBindingElementImporter.InSecureConversationBootstrapBindingImportMode] = SecurityBindingElementImporter.InSecureConversationBootstrapBindingImportMode;
try
{
bindingElements = importer.ImportPolicy(NullServiceEndpoint, alternatives);
if (importer.State.ContainsKey(SecurityBindingElementImporter.SecureConversationBootstrapEncryptionRequirements))
{
MessagePartSpecification encryption = (MessagePartSpecification)importer.State[SecurityBindingElementImporter.SecureConversationBootstrapEncryptionRequirements];
if (encryption.IsBodyIncluded != true)
{
importer.Errors.Add(new MetadataConversionError(SR.GetString(SR.UnsupportedSecureConversationBootstrapProtectionRequirements), false));
bindingElements = null;
}
}
if (importer.State.ContainsKey(SecurityBindingElementImporter.SecureConversationBootstrapSignatureRequirements))
{
MessagePartSpecification signature = (MessagePartSpecification)importer.State[SecurityBindingElementImporter.SecureConversationBootstrapSignatureRequirements];
if (signature.IsBodyIncluded != true)
{
importer.Errors.Add(new MetadataConversionError(SR.GetString(SR.UnsupportedSecureConversationBootstrapProtectionRequirements), false));
bindingElements = null;
}
}
}
finally
{
importer.State.Remove(SecurityBindingElementImporter.InSecureConversationBootstrapBindingImportMode);
if (importer.State.ContainsKey(SecurityBindingElementImporter.SecureConversationBootstrapEncryptionRequirements))
importer.State.Remove(SecurityBindingElementImporter.SecureConversationBootstrapEncryptionRequirements);
if (importer.State.ContainsKey(SecurityBindingElementImporter.SecureConversationBootstrapSignatureRequirements))
importer.State.Remove(SecurityBindingElementImporter.SecureConversationBootstrapSignatureRequirements);
}
if (bindingElements != null)
{
parameters.BootstrapSecurityBindingElement = bindingElements.Find<SecurityBindingElement>();
return true;
}
else
{
parameters.BootstrapSecurityBindingElement = null;
return true; // Consider returning false here.
}
}
return result;
}
示例2: TryImportWsspBootstrapPolicyAssertion
public virtual bool TryImportWsspBootstrapPolicyAssertion(MetadataImporter importer, ICollection<XmlElement> assertions, SecureConversationSecurityTokenParameters parameters)
{
XmlElement element;
Collection<Collection<XmlElement>> collection;
BindingElementCollection elements;
bool flag = false;
if (!this.TryImportWsspAssertion(assertions, "BootstrapPolicy", out element) || !this.TryGetNestedPolicyAlternatives(importer, element, out collection))
{
return flag;
}
importer.State["InSecureConversationBootstrapBindingImportMode"] = "InSecureConversationBootstrapBindingImportMode";
try
{
elements = importer.ImportPolicy(NullServiceEndpoint, collection);
if (importer.State.ContainsKey("SecureConversationBootstrapEncryptionRequirements"))
{
MessagePartSpecification specification = (MessagePartSpecification) importer.State["SecureConversationBootstrapEncryptionRequirements"];
if (!specification.IsBodyIncluded)
{
importer.Errors.Add(new MetadataConversionError(System.ServiceModel.SR.GetString("UnsupportedSecureConversationBootstrapProtectionRequirements"), false));
elements = null;
}
}
if (importer.State.ContainsKey("SecureConversationBootstrapSignatureRequirements"))
{
MessagePartSpecification specification2 = (MessagePartSpecification) importer.State["SecureConversationBootstrapSignatureRequirements"];
if (!specification2.IsBodyIncluded)
{
importer.Errors.Add(new MetadataConversionError(System.ServiceModel.SR.GetString("UnsupportedSecureConversationBootstrapProtectionRequirements"), false));
elements = null;
}
}
}
finally
{
importer.State.Remove("InSecureConversationBootstrapBindingImportMode");
if (importer.State.ContainsKey("SecureConversationBootstrapEncryptionRequirements"))
{
importer.State.Remove("SecureConversationBootstrapEncryptionRequirements");
}
if (importer.State.ContainsKey("SecureConversationBootstrapSignatureRequirements"))
{
importer.State.Remove("SecureConversationBootstrapSignatureRequirements");
}
}
if (elements != null)
{
parameters.BootstrapSecurityBindingElement = elements.Find<SecurityBindingElement>();
return true;
}
parameters.BootstrapSecurityBindingElement = null;
return true;
}