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
- TypeUtil.cs
- JsonWriterDelegator.cs
- DuplicateWaitObjectException.cs
- DataGridViewHitTestInfo.cs
- FactoryRecord.cs
- RuntimeIdentifierPropertyAttribute.cs
- securitycriticaldata.cs
- DataGridViewImageCell.cs
- ScriptControlManager.cs
- Number.cs
- OpenCollectionAsyncResult.cs
- DesignerVerb.cs
- EncryptedReference.cs
- _HelperAsyncResults.cs
- ReadOnlyDictionary.cs
- LambdaReference.cs
- ConnectionsZone.cs
- SqlTrackingQuery.cs
- FontDifferentiator.cs
- XmlSchemaNotation.cs
- Block.cs
- Pair.cs
- cookiecontainer.cs
- IndexerNameAttribute.cs
- ProxyAttribute.cs
- Monitor.cs
- ListView.cs
- BamlLocalizableResource.cs
- AsyncDataRequest.cs
- GeneralTransformCollection.cs
- ErrorFormatterPage.cs
- EventlogProvider.cs
- DocumentReference.cs
- RequiredFieldValidator.cs
- CustomAssemblyResolver.cs
- DataListCommandEventArgs.cs
- ExtendedTransformFactory.cs
- UIElementIsland.cs
- IdleTimeoutMonitor.cs
- BitStream.cs
- Group.cs
- ForceCopyBuildProvider.cs
- QilUnary.cs
- ZoneLinkButton.cs
- FieldMetadata.cs
- DocumentApplication.cs
- EFDataModelProvider.cs
- InternalConfigHost.cs
- SingleSelectRootGridEntry.cs
- FormViewPagerRow.cs
- TypeSystem.cs
- ComEventsHelper.cs
- SoapSchemaExporter.cs
- CfgParser.cs
- ListViewItemSelectionChangedEvent.cs
- SqlUtils.cs
- SafeWaitHandle.cs
- LassoHelper.cs
- BaseUriHelper.cs
- SubclassTypeValidatorAttribute.cs
- BasicKeyConstraint.cs
- RTLAwareMessageBox.cs
- SqlConnectionManager.cs
- CompositeCollectionView.cs
- AdornerHitTestResult.cs
- BaseParser.cs
- ServiceActivationException.cs
- _IPv6Address.cs
- XmlFileEditor.cs
- StorageMappingItemCollection.cs
- ContentElement.cs
- XmlSchemaValidationException.cs
- MemberRelationshipService.cs
- ResourcesBuildProvider.cs
- XhtmlBasicLiteralTextAdapter.cs
- ManifestResourceInfo.cs
- XmlUtilWriter.cs
- StylusTip.cs
- SqlProvider.cs
- TextTrailingCharacterEllipsis.cs
- ParserHooks.cs
- _NegoStream.cs
- PrintPreviewGraphics.cs
- Grid.cs
- NavigationWindow.cs
- LineInfo.cs
- PenThreadPool.cs
- Empty.cs
- GetResponse.cs
- InputScope.cs
- LinearKeyFrames.cs
- PageBorderless.cs
- Version.cs
- PropertyTab.cs
- WindowsBrush.cs
- BaseCAMarshaler.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- TripleDES.cs
- SingleStorage.cs
- HostedTcpTransportManager.cs