当前位置: 首页>>代码示例>>C#>>正文


C# MetadataImporter.ImportPolicy方法代码示例

本文整理汇总了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;
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:56,代码来源:WSSecurityPolicy.cs

示例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;
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:53,代码来源:WSSecurityPolicy.cs


注:本文中的System.ServiceModel.Description.MetadataImporter.ImportPolicy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。