Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / Compilation / WCFModel / HttpBindingExtension.cs / 1305376 / HttpBindingExtension.cs
//------------------------------------------------------------------------------ //// Copyright (C) Microsoft Corporation. All Rights Reserved. // //----------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Security.Permissions; using System.ServiceModel; using System.ServiceModel.Description; using WsdlNS = System.Web.Services.Description; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; using System.Security; #if WEB_EXTENSIONS_CODE namespace System.Web.Compilation.WCFModel #else namespace Microsoft.VSDesigner.WCFModel #endif { ////// Wsdl import extension to remove HttpGet and HttpPost bindings for ASMX services. /// See detail in dev10 792007 /// #if WEB_EXTENSIONS_CODE [PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")] [SecurityCritical] internal class HttpBindingExtension : IWsdlImportExtension #else [PermissionSet(SecurityAction.InheritanceDemand, Name ="FullTrust")] [SecurityCritical] internal class HttpBindingExtension : IWsdlImportExtension #endif { readonly HashSethttpBindingContracts = new HashSet (); [SecuritySafeCritical] static bool ContainsHttpBindingExtension(WsdlNS.Binding wsdlBinding) { //avoiding using wsdlBinding.Extensions.Find(typeof(WsdlNS.HttpBinding)) so the extension won't be marked as handled foreach (object extension in wsdlBinding.Extensions) { if (extension is WsdlNS.HttpBinding) { string httpVerb = ((WsdlNS.HttpBinding)extension).Verb; if (httpVerb.Equals("GET", StringComparison.OrdinalIgnoreCase) || httpVerb.Equals("POST", StringComparison.OrdinalIgnoreCase)) { return true; } } } return false; } [SecuritySafeCritical] public bool IsHttpBindingContract(ContractDescription contract) { return contract != null && httpBindingContracts.Contains(contract); } [SecuritySafeCritical] public void BeforeImport(WsdlNS.ServiceDescriptionCollection wsdlDocuments, XmlSchemaSet xmlSchemas, ICollection policy) {} [SecuritySafeCritical] public void ImportContract(WsdlImporter importer, WsdlContractConversionContext context) {} [SecuritySafeCritical] public void ImportEndpoint(WsdlImporter importer, WsdlEndpointConversionContext context) { if (context != null && context.WsdlBinding != null && ContainsHttpBindingExtension(context.WsdlBinding)) { httpBindingContracts.Add(context.ContractConversionContext.Contract); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // // Copyright (C) Microsoft Corporation. All Rights Reserved. // //----------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Security.Permissions; using System.ServiceModel; using System.ServiceModel.Description; using WsdlNS = System.Web.Services.Description; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; using System.Security; #if WEB_EXTENSIONS_CODE namespace System.Web.Compilation.WCFModel #else namespace Microsoft.VSDesigner.WCFModel #endif { ////// Wsdl import extension to remove HttpGet and HttpPost bindings for ASMX services. /// See detail in dev10 792007 /// #if WEB_EXTENSIONS_CODE [PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")] [SecurityCritical] internal class HttpBindingExtension : IWsdlImportExtension #else [PermissionSet(SecurityAction.InheritanceDemand, Name ="FullTrust")] [SecurityCritical] internal class HttpBindingExtension : IWsdlImportExtension #endif { readonly HashSethttpBindingContracts = new HashSet (); [SecuritySafeCritical] static bool ContainsHttpBindingExtension(WsdlNS.Binding wsdlBinding) { //avoiding using wsdlBinding.Extensions.Find(typeof(WsdlNS.HttpBinding)) so the extension won't be marked as handled foreach (object extension in wsdlBinding.Extensions) { if (extension is WsdlNS.HttpBinding) { string httpVerb = ((WsdlNS.HttpBinding)extension).Verb; if (httpVerb.Equals("GET", StringComparison.OrdinalIgnoreCase) || httpVerb.Equals("POST", StringComparison.OrdinalIgnoreCase)) { return true; } } } return false; } [SecuritySafeCritical] public bool IsHttpBindingContract(ContractDescription contract) { return contract != null && httpBindingContracts.Contains(contract); } [SecuritySafeCritical] public void BeforeImport(WsdlNS.ServiceDescriptionCollection wsdlDocuments, XmlSchemaSet xmlSchemas, ICollection policy) {} [SecuritySafeCritical] public void ImportContract(WsdlImporter importer, WsdlContractConversionContext context) {} [SecuritySafeCritical] public void ImportEndpoint(WsdlImporter importer, WsdlEndpointConversionContext context) { if (context != null && context.WsdlBinding != null && ContainsHttpBindingExtension(context.WsdlBinding)) { httpBindingContracts.Add(context.ContractConversionContext.Contract); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AssemblyAttributesGoHere.cs
- ListViewUpdateEventArgs.cs
- XmlQualifiedNameTest.cs
- parserscommon.cs
- TriState.cs
- DefaultWorkflowTransactionService.cs
- Buffer.cs
- PerformanceCounter.cs
- GroupBox.cs
- TextBoxAutoCompleteSourceConverter.cs
- TableItemStyle.cs
- SignatureDescription.cs
- ClrProviderManifest.cs
- CompositeScriptReferenceEventArgs.cs
- ClusterRegistryConfigurationProvider.cs
- ConnectionPointCookie.cs
- TextProviderWrapper.cs
- StringSource.cs
- SimpleFieldTemplateFactory.cs
- TypedAsyncResult.cs
- BlockCollection.cs
- SafeRightsManagementHandle.cs
- SqlCacheDependencyDatabaseCollection.cs
- SafeNativeMethods.cs
- String.cs
- DataColumnMappingCollection.cs
- SchemaEntity.cs
- Matrix3DValueSerializer.cs
- RemotingClientProxy.cs
- ToolStripContentPanelRenderEventArgs.cs
- ApplyTemplatesAction.cs
- EmissiveMaterial.cs
- ReflectionUtil.cs
- WebControlToolBoxItem.cs
- CacheMemory.cs
- PartManifestEntry.cs
- Math.cs
- Filter.cs
- TrackBarRenderer.cs
- ModelTreeEnumerator.cs
- FileStream.cs
- DesignerWidgets.cs
- DispatcherFrame.cs
- JsonXmlDataContract.cs
- SamlAttributeStatement.cs
- GestureRecognitionResult.cs
- VisualProxy.cs
- ItemContainerProviderWrapper.cs
- ZipArchive.cs
- DelegateSerializationHolder.cs
- ClientFormsAuthenticationCredentials.cs
- PlanCompilerUtil.cs
- HorizontalAlignConverter.cs
- PriorityQueue.cs
- PersistChildrenAttribute.cs
- BrowserCapabilitiesCompiler.cs
- ZipFileInfoCollection.cs
- LayoutExceptionEventArgs.cs
- WhitespaceRule.cs
- DataGridPagerStyle.cs
- SessionStateSection.cs
- ToolboxItemImageConverter.cs
- PrintDialogException.cs
- TableCellCollection.cs
- WebReferenceOptions.cs
- TextCharacters.cs
- TextTrailingWordEllipsis.cs
- TableLayoutPanel.cs
- DetailsViewUpdatedEventArgs.cs
- AppDomainManager.cs
- HtmlDocument.cs
- Pts.cs
- FullTextState.cs
- OLEDB_Enum.cs
- SendKeys.cs
- CompilationSection.cs
- Transform.cs
- UnitySerializationHolder.cs
- HMACRIPEMD160.cs
- Util.cs
- ProfileProvider.cs
- RelationshipConstraintValidator.cs
- WindowInteropHelper.cs
- TextElementCollection.cs
- _ScatterGatherBuffers.cs
- TableLayoutSettingsTypeConverter.cs
- SoapIgnoreAttribute.cs
- ExecutionEngineException.cs
- IdentityValidationException.cs
- Pair.cs
- UrlPath.cs
- EventsTab.cs
- CompositeCollection.cs
- XPathNodeIterator.cs
- PolicyManager.cs
- ValidationSummary.cs
- TextRange.cs
- SmtpLoginAuthenticationModule.cs
- StyleXamlParser.cs
- TreeWalkHelper.cs