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
- QuaternionValueSerializer.cs
- WeakEventTable.cs
- ListDependantCardsRequest.cs
- ConnectionManagementElementCollection.cs
- Adorner.cs
- ListViewPagedDataSource.cs
- HtmlInputRadioButton.cs
- CharEnumerator.cs
- SettingsPropertyNotFoundException.cs
- PermissionToken.cs
- SqlCacheDependencySection.cs
- AnnotationResourceCollection.cs
- XPathConvert.cs
- HttpCachePolicy.cs
- PersonalizationStateInfo.cs
- ErrorEventArgs.cs
- DocumentViewer.cs
- DataGridHeaderBorder.cs
- FixedDocumentPaginator.cs
- CommandLibraryHelper.cs
- GeometryModel3D.cs
- BaseCodeDomTreeGenerator.cs
- RangeValidator.cs
- Int32Converter.cs
- ServiceBehaviorElement.cs
- FontStyle.cs
- SmtpSection.cs
- TrustManagerPromptUI.cs
- Random.cs
- DataGridViewMethods.cs
- SharedUtils.cs
- OutputScopeManager.cs
- ParseChildrenAsPropertiesAttribute.cs
- LoginAutoFormat.cs
- AppSecurityManager.cs
- XmlDataImplementation.cs
- _AutoWebProxyScriptHelper.cs
- SplayTreeNode.cs
- QueryContinueDragEvent.cs
- DefaultBinder.cs
- EntityDataSourceDesignerHelper.cs
- ColorComboBox.cs
- ProcessRequestArgs.cs
- Marshal.cs
- UniqueEventHelper.cs
- FontResourceCache.cs
- ImageCodecInfoPrivate.cs
- MaterialGroup.cs
- ApplicationActivator.cs
- EmptyElement.cs
- SQLByteStorage.cs
- DataGridViewRow.cs
- MessageTraceRecord.cs
- ErrorCodes.cs
- MetadataItemSerializer.cs
- DataControlFieldHeaderCell.cs
- ContextMenu.cs
- ArithmeticException.cs
- ServiceObjectContainer.cs
- ClientScriptManagerWrapper.cs
- ComplexType.cs
- XsltOutput.cs
- unitconverter.cs
- XmlWriterTraceListener.cs
- TraceLevelStore.cs
- CodeMethodInvokeExpression.cs
- StrokeFIndices.cs
- HwndSource.cs
- DifferencingCollection.cs
- NavigationEventArgs.cs
- basevalidator.cs
- GeneralTransform3DGroup.cs
- DataPagerField.cs
- AtomServiceDocumentSerializer.cs
- _IPv6Address.cs
- ToolStripDropTargetManager.cs
- ImmutablePropertyDescriptorGridEntry.cs
- Random.cs
- PassportAuthentication.cs
- SplineKeyFrames.cs
- SelectionPatternIdentifiers.cs
- Propagator.ExtentPlaceholderCreator.cs
- DefaultSection.cs
- BasePattern.cs
- ObjectDataSource.cs
- CodeAccessPermission.cs
- OracleSqlParser.cs
- TextRangeEdit.cs
- DesignerActionList.cs
- ProvidersHelper.cs
- CaretElement.cs
- MemberPathMap.cs
- _RequestCacheProtocol.cs
- AxImporter.cs
- RC2CryptoServiceProvider.cs
- FormsAuthenticationTicket.cs
- XmlDocumentViewSchema.cs
- SubtreeProcessor.cs
- FSWPathEditor.cs
- ColorTransformHelper.cs