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
- XmlBinaryReader.cs
- XhtmlTextWriter.cs
- BitmapSourceSafeMILHandle.cs
- ResourcePermissionBaseEntry.cs
- ValueType.cs
- EndpointIdentityConverter.cs
- SecurityTokenValidationException.cs
- TablePatternIdentifiers.cs
- HttpSessionStateBase.cs
- RepeaterItem.cs
- DataBindingCollectionEditor.cs
- CqlLexer.cs
- CompressedStack.cs
- CharKeyFrameCollection.cs
- ListenerConstants.cs
- FormsAuthentication.cs
- GAC.cs
- SyndicationDeserializer.cs
- DbProviderSpecificTypePropertyAttribute.cs
- BinaryMethodMessage.cs
- IncrementalReadDecoders.cs
- TraceProvider.cs
- initElementDictionary.cs
- SynchronizedRandom.cs
- MarshalDirectiveException.cs
- ColorConvertedBitmap.cs
- CodeEventReferenceExpression.cs
- FramingChannels.cs
- ProfileServiceManager.cs
- Attributes.cs
- EntityViewGenerator.cs
- DataControlButton.cs
- LoginViewDesigner.cs
- PeerApplicationLaunchInfo.cs
- ObjectViewEntityCollectionData.cs
- DataTableNewRowEvent.cs
- CalendarDay.cs
- SecurityNegotiationException.cs
- DataGridPageChangedEventArgs.cs
- LinkArea.cs
- MarkerProperties.cs
- smtppermission.cs
- InternalConfigEventArgs.cs
- MimeAnyImporter.cs
- ProjectedSlot.cs
- ThemeDictionaryExtension.cs
- SecurityContextSecurityToken.cs
- ClaimComparer.cs
- DefinitionUpdate.cs
- WebServiceFault.cs
- NotifyIcon.cs
- X509RawDataKeyIdentifierClause.cs
- ThreadPool.cs
- Section.cs
- TextSpan.cs
- SslStream.cs
- VectorCollection.cs
- DesignTimeTemplateParser.cs
- XmlReflectionImporter.cs
- WpfKnownType.cs
- AuthenticationConfig.cs
- WorkflowInstanceAbortedRecord.cs
- Point4DConverter.cs
- HorizontalAlignConverter.cs
- ListViewItemEventArgs.cs
- TraceFilter.cs
- sqlser.cs
- CachingHintValidation.cs
- WindowsUpDown.cs
- SettingsPropertyIsReadOnlyException.cs
- StylusPointPropertyUnit.cs
- CollectionChange.cs
- WMIInterop.cs
- Int32Rect.cs
- WindowsListViewGroup.cs
- Msmq.cs
- XmlSchemaImporter.cs
- KeyInfo.cs
- GenericEnumConverter.cs
- BulletDecorator.cs
- PassportIdentity.cs
- Vector3DCollectionConverter.cs
- ListControl.cs
- TypeConstant.cs
- WindowsListViewGroup.cs
- StorageEntityContainerMapping.cs
- DLinqDataModelProvider.cs
- LogPolicy.cs
- ComponentDispatcher.cs
- TableLayoutPanel.cs
- ControlPager.cs
- PageRanges.cs
- Win32KeyboardDevice.cs
- SqlClientPermission.cs
- XmlSchemaParticle.cs
- dbenumerator.cs
- DataGridViewRowHeaderCell.cs
- EditorPartCollection.cs
- HScrollProperties.cs
- ResourceIDHelper.cs