Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / ComIntegration / SecurityCookieModeValidator.cs / 1 / SecurityCookieModeValidator.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.ComIntegration { using System; using System.ServiceModel.Channels; using System.ServiceModel.Description; using System.ServiceModel.Dispatcher; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ServiceModel; using System.ServiceModel.Security.Tokens; class SecurityCookieModeValidator : IServiceBehavior { void CheckForCookie(SecurityTokenParameters tokenParameters, ServiceEndpoint endpoint) { bool cookie = false; SecureConversationSecurityTokenParameters sc = tokenParameters as SecureConversationSecurityTokenParameters; if (sc != null && sc.RequireCancellation == false) cookie = true; SspiSecurityTokenParameters sspi = tokenParameters as SspiSecurityTokenParameters; if (sspi != null && sspi.RequireCancellation == false) cookie = true; SspiSecurityTokenParameters ssl = tokenParameters as SspiSecurityTokenParameters; if (ssl != null && ssl.RequireCancellation == false) cookie = true; if (cookie) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.RequireNonCookieMode, endpoint.Binding.Name, endpoint.Binding.Namespace))); } void IServiceBehavior.AddBindingParameters(ServiceDescription description, ServiceHostBase serviceHostBase, Collectionendpoints, BindingParameterCollection parameters) { } void IServiceBehavior.Validate(ServiceDescription service, ServiceHostBase serviceHostBase) { } void IServiceBehavior.ApplyDispatchBehavior(ServiceDescription service, ServiceHostBase serviceHostBase) { // The philosophy here is to respect settings obtained from the // service surrogate class' attributes, as written by the user, // while rejecting those that contradict our requirements. // We never want to silently overwrite a user's attributes. // So we either accept overrides or reject them. // // If you're changing this code, you'll probably also want to change // ComPlusServiceLoader.AddBehaviors foreach (ServiceEndpoint endpoint in service.Endpoints) { ICollection bindingElements = endpoint.Binding.CreateBindingElements(); foreach (BindingElement element in bindingElements) { SymmetricSecurityBindingElement sbe = (element as SymmetricSecurityBindingElement); if (sbe != null) { this.CheckForCookie(sbe.ProtectionTokenParameters, endpoint); foreach (SecurityTokenParameters p in sbe.EndpointSupportingTokenParameters.Endorsing) this.CheckForCookie(p, endpoint); break; } } } } } } // 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
- MemoryMappedFileSecurity.cs
- PropertyManager.cs
- SafeProcessHandle.cs
- TransactionScope.cs
- HtmlButton.cs
- HostingPreferredMapPath.cs
- PEFileReader.cs
- XmlCharCheckingWriter.cs
- TypeContext.cs
- AssemblyCache.cs
- WebConfigurationHostFileChange.cs
- MasterPageCodeDomTreeGenerator.cs
- LinqDataSourceView.cs
- EncryptedXml.cs
- SafeCryptContextHandle.cs
- NativeRecognizer.cs
- AmbientLight.cs
- HtmlHead.cs
- BeginStoryboard.cs
- DiffuseMaterial.cs
- RectAnimationClockResource.cs
- GenericParameterDataContract.cs
- SecureStringHasher.cs
- SimpleBitVector32.cs
- _SslStream.cs
- RecognizerBase.cs
- OutgoingWebRequestContext.cs
- CodeMemberProperty.cs
- GreenMethods.cs
- HtmlProps.cs
- RuntimeResourceSet.cs
- AsyncCompletedEventArgs.cs
- SchemaElementDecl.cs
- SimpleHandlerFactory.cs
- HttpWebRequestElement.cs
- CatalogZone.cs
- HttpCookieCollection.cs
- HttpEncoderUtility.cs
- StorageComplexTypeMapping.cs
- WeakEventTable.cs
- TimelineCollection.cs
- LocalizationComments.cs
- FocusChangedEventArgs.cs
- StaticDataManager.cs
- ThreadStartException.cs
- SmiRecordBuffer.cs
- LingerOption.cs
- MasterPage.cs
- InitializerFacet.cs
- EntityException.cs
- HttpContext.cs
- RowToFieldTransformer.cs
- TextTrailingCharacterEllipsis.cs
- StickyNoteAnnotations.cs
- Point3DAnimationBase.cs
- ViewStateAttachedPropertyFeature.cs
- PackageFilter.cs
- TextFormatter.cs
- Int16Animation.cs
- FormsAuthenticationEventArgs.cs
- ExpressionBuilderContext.cs
- PeerNameRecord.cs
- NamedPipeWorkerProcess.cs
- NumberSubstitution.cs
- PersonalizationAdministration.cs
- ColumnResult.cs
- ChangeInterceptorAttribute.cs
- UnmanagedHandle.cs
- KeyMatchBuilder.cs
- ReflectionTypeLoadException.cs
- NumberSubstitution.cs
- PeerResolverElement.cs
- TaskHelper.cs
- indexingfiltermarshaler.cs
- AutomationAttributeInfo.cs
- SafeProcessHandle.cs
- SafeWaitHandle.cs
- InternalResources.cs
- FilteredReadOnlyMetadataCollection.cs
- XmlFormatWriterGenerator.cs
- WindowExtensionMethods.cs
- ElementsClipboardData.cs
- XmlReader.cs
- TdsRecordBufferSetter.cs
- tooltip.cs
- ObjectCloneHelper.cs
- DbReferenceCollection.cs
- HandledEventArgs.cs
- ScrollEvent.cs
- TextRangeEditTables.cs
- RetrieveVirtualItemEventArgs.cs
- MimeMapping.cs
- XPathNavigator.cs
- SqlNode.cs
- QilUnary.cs
- Interop.cs
- SymbolTable.cs
- IERequestCache.cs
- DSASignatureFormatter.cs
- DispatcherExceptionFilterEventArgs.cs