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
- AccessorTable.cs
- OleDbRowUpdatingEvent.cs
- SharedPersonalizationStateInfo.cs
- BamlRecordHelper.cs
- ContainerSelectorBehavior.cs
- ExceptionHandlersDesigner.cs
- XmlReader.cs
- MultiBindingExpression.cs
- ScrollData.cs
- ProgressBarRenderer.cs
- TextTrailingCharacterEllipsis.cs
- SplineKeyFrames.cs
- ExternalFile.cs
- MessageCredentialType.cs
- BufferAllocator.cs
- Decorator.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- FilterableAttribute.cs
- KeyEventArgs.cs
- XhtmlBasicImageAdapter.cs
- StylusEventArgs.cs
- GlyphRunDrawing.cs
- WorkflowMarkupSerializationException.cs
- WebServiceParameterData.cs
- SpellerInterop.cs
- CodeBinaryOperatorExpression.cs
- ToolStripItemRenderEventArgs.cs
- OleDbCommand.cs
- PagesSection.cs
- FormViewDeleteEventArgs.cs
- MsmqIntegrationElement.cs
- DesignerToolStripControlHost.cs
- ContractInferenceHelper.cs
- ZeroOpNode.cs
- Part.cs
- BamlLocalizabilityResolver.cs
- TextContainerHelper.cs
- InputProcessorProfilesLoader.cs
- AtlasWeb.Designer.cs
- MediaScriptCommandRoutedEventArgs.cs
- PropertyRecord.cs
- TemplatePropertyEntry.cs
- MouseButton.cs
- FormatConvertedBitmap.cs
- OletxEnlistment.cs
- AdornedElementPlaceholder.cs
- DataGridView.cs
- PriorityItem.cs
- SeverityFilter.cs
- FileStream.cs
- TagMapCollection.cs
- PolyBezierSegment.cs
- TextBoxBase.cs
- OpenTypeLayoutCache.cs
- XmlSchemaSimpleContentRestriction.cs
- PenCursorManager.cs
- XmlParserContext.cs
- LoginName.cs
- RenderDataDrawingContext.cs
- PersonalizationProviderHelper.cs
- ListSortDescriptionCollection.cs
- ReferencedCollectionType.cs
- XmlSignatureProperties.cs
- DebugInfo.cs
- BaseDataListComponentEditor.cs
- METAHEADER.cs
- AsynchronousChannelMergeEnumerator.cs
- SoapExtensionImporter.cs
- RequestSecurityTokenResponse.cs
- ThreadPoolTaskScheduler.cs
- AdPostCacheSubstitution.cs
- InstallerTypeAttribute.cs
- MethodBuilderInstantiation.cs
- ChooseAction.cs
- ADMembershipUser.cs
- XmlNodeChangedEventArgs.cs
- TimeSpanSecondsConverter.cs
- X509UI.cs
- ContextItemManager.cs
- ProxyWebPartConnectionCollection.cs
- HttpApplication.cs
- ObjectDataSourceFilteringEventArgs.cs
- BooleanFunctions.cs
- IntPtr.cs
- GridViewColumnCollection.cs
- WebZone.cs
- ArrayWithOffset.cs
- HttpApplicationFactory.cs
- XhtmlBasicLinkAdapter.cs
- ExceptionHelpers.cs
- TypeTypeConverter.cs
- MemberInfoSerializationHolder.cs
- RawAppCommandInputReport.cs
- ToolStripDropDownClosedEventArgs.cs
- DynamicMethod.cs
- RemotingAttributes.cs
- ScrollItemProviderWrapper.cs
- ECDsaCng.cs
- Overlapped.cs
- infer.cs