Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Description / ServiceAuthorizationBehavior.cs / 2 / ServiceAuthorizationBehavior.cs
//---------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------------------- namespace System.ServiceModel.Description { using System; using System.ServiceModel.Channels; using System.ServiceModel.Dispatcher; using System.ServiceModel; using System.Runtime.Serialization; using System.ServiceModel.Security; using System.Web.Security; using System.Collections.ObjectModel; using System.Collections.Generic; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.Runtime.CompilerServices; public sealed class ServiceAuthorizationBehavior : IServiceBehavior { internal const bool DefaultImpersonateCallerForAllOperations = false; internal const PrincipalPermissionMode DefaultPrincipalPermissionMode = PrincipalPermissionMode.UseWindowsGroups; bool impersonateCallerForAllOperations; ReadOnlyCollectionexternalAuthorizationPolicies; ServiceAuthorizationManager serviceAuthorizationManager; PrincipalPermissionMode principalPermissionMode; object roleProvider; bool isExternalPoliciesSet; bool isAuthorizationManagerSet; bool isReadOnly; public ServiceAuthorizationBehavior() { this.impersonateCallerForAllOperations = DefaultImpersonateCallerForAllOperations; this.principalPermissionMode = DefaultPrincipalPermissionMode; } ServiceAuthorizationBehavior(ServiceAuthorizationBehavior other) { this.impersonateCallerForAllOperations = other.impersonateCallerForAllOperations; this.principalPermissionMode = other.principalPermissionMode; this.roleProvider = other.roleProvider; this.isExternalPoliciesSet = other.isExternalPoliciesSet; this.isAuthorizationManagerSet = other.isAuthorizationManagerSet; if (other.isExternalPoliciesSet || other.isAuthorizationManagerSet) { CopyAuthorizationPoliciesAndManager(other); } this.isReadOnly = other.isReadOnly; } public ReadOnlyCollection ExternalAuthorizationPolicies { get { return this.externalAuthorizationPolicies; } set { ThrowIfImmutable(); this.isExternalPoliciesSet = true; this.externalAuthorizationPolicies = value; } } public ServiceAuthorizationManager ServiceAuthorizationManager { get { return this.serviceAuthorizationManager; } set { ThrowIfImmutable(); this.isAuthorizationManagerSet = true; this.serviceAuthorizationManager = value; } } public PrincipalPermissionMode PrincipalPermissionMode { get { return this.principalPermissionMode; } set { if (!PrincipalPermissionModeHelper.IsDefined(value)) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); ThrowIfImmutable(); this.principalPermissionMode = value; } } public RoleProvider RoleProvider { get { return (RoleProvider)this.roleProvider; } set { ThrowIfImmutable(); this.roleProvider = value; } } public bool ImpersonateCallerForAllOperations { get { return this.impersonateCallerForAllOperations; } set { ThrowIfImmutable(); this.impersonateCallerForAllOperations = value; } } [MethodImpl(MethodImplOptions.NoInlining)] void ApplyAuthorizationPoliciesAndManager(DispatchRuntime behavior) { if (this.externalAuthorizationPolicies != null) { behavior.ExternalAuthorizationPolicies = this.externalAuthorizationPolicies; } if (this.serviceAuthorizationManager != null) { behavior.ServiceAuthorizationManager = this.serviceAuthorizationManager; } } [MethodImpl(MethodImplOptions.NoInlining)] void CopyAuthorizationPoliciesAndManager(ServiceAuthorizationBehavior other) { this.externalAuthorizationPolicies = other.externalAuthorizationPolicies; this.serviceAuthorizationManager = other.serviceAuthorizationManager; } [MethodImpl(MethodImplOptions.NoInlining)] void ApplyRoleProvider(DispatchRuntime behavior) { behavior.RoleProvider = (RoleProvider)this.roleProvider; } void IServiceBehavior.Validate(ServiceDescription description, ServiceHostBase serviceHostBase) { } void IServiceBehavior.AddBindingParameters(ServiceDescription description, ServiceHostBase serviceHostBase, Collection endpoints, BindingParameterCollection parameters) { } void IServiceBehavior.ApplyDispatchBehavior(ServiceDescription description, ServiceHostBase serviceHostBase) { if (description == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("description")); if (serviceHostBase == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("serviceHostBase")); for (int i=0; i
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NavigatorOutput.cs
- SafeWaitHandle.cs
- ThicknessKeyFrameCollection.cs
- HttpTransportBindingElement.cs
- ColorTransformHelper.cs
- DataPointer.cs
- QueryCacheManager.cs
- DecoderFallbackWithFailureFlag.cs
- XsdDataContractImporter.cs
- Site.cs
- Processor.cs
- Label.cs
- DeferredReference.cs
- DemultiplexingClientMessageFormatter.cs
- DesignerActionItemCollection.cs
- BehaviorEditorPart.cs
- UserControlAutomationPeer.cs
- HostedBindingBehavior.cs
- DependencyPropertyConverter.cs
- MaskInputRejectedEventArgs.cs
- CurrentTimeZone.cs
- EdmItemError.cs
- ImportContext.cs
- TypeDefinition.cs
- PrintDialogException.cs
- FileLogRecordStream.cs
- LayoutTable.cs
- CodeConstructor.cs
- FaultHandlingFilter.cs
- AccessedThroughPropertyAttribute.cs
- ToolboxItemAttribute.cs
- Grant.cs
- ApplyTemplatesAction.cs
- GuidConverter.cs
- ManipulationLogic.cs
- EntitySetBaseCollection.cs
- XhtmlConformanceSection.cs
- EntityDataSourceUtil.cs
- FileUtil.cs
- LeaseManager.cs
- PackUriHelper.cs
- GestureRecognitionResult.cs
- ParallelTimeline.cs
- EDesignUtil.cs
- CompilerCollection.cs
- ConstNode.cs
- Dictionary.cs
- SelectingProviderEventArgs.cs
- ToolStripPanel.cs
- ProgressiveCrcCalculatingStream.cs
- ChainOfDependencies.cs
- MarkupObject.cs
- HorizontalAlignConverter.cs
- Translator.cs
- FormatSettings.cs
- BuildResultCache.cs
- Misc.cs
- XhtmlCssHandler.cs
- SelectionProviderWrapper.cs
- DragEvent.cs
- _LazyAsyncResult.cs
- HttpModuleActionCollection.cs
- Overlapped.cs
- Geometry.cs
- PageAsyncTaskManager.cs
- ByeMessageCD1.cs
- FunctionNode.cs
- Literal.cs
- EncoderNLS.cs
- Utils.cs
- _SslStream.cs
- BindingCollection.cs
- COM2ExtendedBrowsingHandler.cs
- SystemThemeKey.cs
- DesignerSerializerAttribute.cs
- Registration.cs
- BaseCodePageEncoding.cs
- NameGenerator.cs
- CultureSpecificCharacterBufferRange.cs
- PropertyChangedEventManager.cs
- TextViewDesigner.cs
- ViewPort3D.cs
- PlainXmlSerializer.cs
- CodeAttributeDeclarationCollection.cs
- DataTemplateSelector.cs
- exports.cs
- GenericRootAutomationPeer.cs
- DrawingDrawingContext.cs
- ClonableStack.cs
- SizeChangedInfo.cs
- DelimitedListTraceListener.cs
- AsymmetricCryptoHandle.cs
- ToolStripTemplateNode.cs
- DataPager.cs
- ByteRangeDownloader.cs
- TextParagraphView.cs
- InstanceLockException.cs
- CheckedListBox.cs
- LinqDataSourceEditData.cs
- _LocalDataStore.cs