Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / ServiceAuthorizationElement.cs / 1 / ServiceAuthorizationElement.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Configuration { using System.Collections.Generic; using System.ServiceModel.Channels; using System.ServiceModel; using System.ServiceModel.Description; using System.ComponentModel; using System.Configuration; using System.IdentityModel.Claims; using System.IdentityModel.Policy; public sealed partial class ServiceAuthorizationElement : BehaviorExtensionElement { public ServiceAuthorizationElement() { } [ConfigurationProperty(ConfigurationStrings.PrincipalPermissionMode, DefaultValue = PrincipalPermissionMode.UseWindowsGroups)] [ServiceModelEnumValidator(typeof(PrincipalPermissionModeHelper))] public PrincipalPermissionMode PrincipalPermissionMode { get { return (PrincipalPermissionMode)base[ConfigurationStrings.PrincipalPermissionMode]; } set { base[ConfigurationStrings.PrincipalPermissionMode] = value; } } [ConfigurationProperty(ConfigurationStrings.RoleProviderName, DefaultValue = "")] [StringValidator(MinLength = 0)] public string RoleProviderName { get { return (string)base[ConfigurationStrings.RoleProviderName]; } set { if (String.IsNullOrEmpty(value)) { value = String.Empty; } base[ConfigurationStrings.RoleProviderName] = value; } } [ConfigurationProperty(ConfigurationStrings.ImpersonateCallerForAllOperations, DefaultValue = ServiceAuthorizationBehavior.DefaultImpersonateCallerForAllOperations)] public bool ImpersonateCallerForAllOperations { get { return (bool)base[ConfigurationStrings.ImpersonateCallerForAllOperations]; } set { base[ConfigurationStrings.ImpersonateCallerForAllOperations] = value; } } [ConfigurationProperty(ConfigurationStrings.ServiceAuthorizationManagerType, DefaultValue = "")] [StringValidator(MinLength = 0)] public string ServiceAuthorizationManagerType { get { return (string)base[ConfigurationStrings.ServiceAuthorizationManagerType]; } set { if (String.IsNullOrEmpty(value)) { value = String.Empty; } base[ConfigurationStrings.ServiceAuthorizationManagerType] = value; } } [ConfigurationProperty(ConfigurationStrings.AuthorizationPolicies)] public AuthorizationPolicyTypeElementCollection AuthorizationPolicies { get { return (AuthorizationPolicyTypeElementCollection)base[ConfigurationStrings.AuthorizationPolicies]; } } public override void CopyFrom(ServiceModelExtensionElement from) { base.CopyFrom(from); ServiceAuthorizationElement source = (ServiceAuthorizationElement)from; #pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null this.PrincipalPermissionMode = source.PrincipalPermissionMode; this.RoleProviderName = source.RoleProviderName; this.ImpersonateCallerForAllOperations = source.ImpersonateCallerForAllOperations; this.ServiceAuthorizationManagerType = source.ServiceAuthorizationManagerType; AuthorizationPolicyTypeElementCollection srcAuthorizationPolicies = source.AuthorizationPolicies; AuthorizationPolicyTypeElementCollection dstAuthorizationPolicies = this.AuthorizationPolicies; for (int i = 0; i < srcAuthorizationPolicies.Count; ++i) { dstAuthorizationPolicies.Add(srcAuthorizationPolicies[i]); } } protected internal override object CreateBehavior() { ServiceAuthorizationBehavior behavior = new ServiceAuthorizationBehavior(); behavior.PrincipalPermissionMode = this.PrincipalPermissionMode; string roleProviderName = this.RoleProviderName; if (!String.IsNullOrEmpty(roleProviderName)) { behavior.RoleProvider = System.Web.Security.Roles.Providers[roleProviderName]; if (behavior.RoleProvider == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException( SR.GetString(SR.InvalidRoleProviderSpecifiedInConfig, roleProviderName))); } } behavior.ImpersonateCallerForAllOperations = this.ImpersonateCallerForAllOperations; string serviceAuthorizationManagerType = this.ServiceAuthorizationManagerType; if (!String.IsNullOrEmpty(serviceAuthorizationManagerType)) { Type type = Type.GetType(serviceAuthorizationManagerType, true); if (!typeof(ServiceAuthorizationManager).IsAssignableFrom(type)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException( SR.GetString(SR.ConfigInvalidServiceAuthorizationManagerType, serviceAuthorizationManagerType, typeof(ServiceAuthorizationManager)))); } behavior.ServiceAuthorizationManager = (ServiceAuthorizationManager)Activator.CreateInstance(type); } AuthorizationPolicyTypeElementCollection authorizationPolicies = this.AuthorizationPolicies; if (authorizationPolicies.Count > 0) { Listpolicies = new List (authorizationPolicies.Count); for (int i = 0; i < authorizationPolicies.Count; ++i) { Type type = Type.GetType(authorizationPolicies[i].PolicyType, true); if (!typeof(IAuthorizationPolicy).IsAssignableFrom(type)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException( SR.GetString(SR.ConfigInvalidAuthorizationPolicyType, authorizationPolicies[i].PolicyType, typeof(IAuthorizationPolicy)))); } policies.Add((IAuthorizationPolicy)Activator.CreateInstance(type)); } behavior.ExternalAuthorizationPolicies = policies.AsReadOnly(); } return behavior; } public override Type BehaviorType { get { return typeof(ServiceAuthorizationBehavior); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PriorityQueue.cs
- ObjectFullSpanRewriter.cs
- IgnoreDeviceFilterElementCollection.cs
- IdentityReference.cs
- QuaternionRotation3D.cs
- MediaContext.cs
- OleDbReferenceCollection.cs
- EncoderBestFitFallback.cs
- PerfCounters.cs
- KeyPressEvent.cs
- DesignerActionMethodItem.cs
- ReadOnlyDictionary.cs
- UniqueIdentifierService.cs
- XsdBuildProvider.cs
- ArgIterator.cs
- MailAddressParser.cs
- ThemeDirectoryCompiler.cs
- ObjectDataSource.cs
- SQLDecimalStorage.cs
- PackWebRequest.cs
- CompositeControl.cs
- DllNotFoundException.cs
- ResourceAttributes.cs
- sqlcontext.cs
- IisTraceListener.cs
- UnsafePeerToPeerMethods.cs
- ScriptingSectionGroup.cs
- DataPointer.cs
- ADConnectionHelper.cs
- IDReferencePropertyAttribute.cs
- OrderPreservingPipeliningMergeHelper.cs
- GraphicsPathIterator.cs
- AesCryptoServiceProvider.cs
- SafeFileMapViewHandle.cs
- TemplatedWizardStep.cs
- CreatingCookieEventArgs.cs
- DataListGeneralPage.cs
- AndCondition.cs
- IsolatedStorage.cs
- RegexNode.cs
- DataSetMappper.cs
- StateMachineSubscription.cs
- DataGridComboBoxColumn.cs
- HttpPostedFile.cs
- DataGridViewRowEventArgs.cs
- ModuleBuilderData.cs
- ButtonBase.cs
- ViewLoader.cs
- TabControl.cs
- MasterPageCodeDomTreeGenerator.cs
- PtsCache.cs
- RtType.cs
- Instrumentation.cs
- SetStateDesigner.cs
- HostProtectionPermission.cs
- DbConnectionStringBuilder.cs
- SecurityDocument.cs
- FixedTextBuilder.cs
- ColumnWidthChangedEvent.cs
- FontCacheUtil.cs
- DoubleLink.cs
- ControlPropertyNameConverter.cs
- Int64.cs
- XpsDocumentEvent.cs
- ControlUtil.cs
- StylusSystemGestureEventArgs.cs
- NameValueConfigurationElement.cs
- CapabilitiesUse.cs
- DummyDataSource.cs
- ProtectedConfigurationSection.cs
- CustomErrorCollection.cs
- Utils.cs
- metadatamappinghashervisitor.cs
- XmlQualifiedName.cs
- coordinator.cs
- UnsafeCollabNativeMethods.cs
- MsmqIntegrationElement.cs
- IntegerValidator.cs
- NumberAction.cs
- BookmarkScopeManager.cs
- WindowsMenu.cs
- BindingElement.cs
- Repeater.cs
- CompiledQueryCacheEntry.cs
- GZipStream.cs
- ParseNumbers.cs
- IChannel.cs
- ModelService.cs
- XmlCDATASection.cs
- SerializationObjectManager.cs
- CodeCatchClauseCollection.cs
- BinaryEditor.cs
- Compiler.cs
- Quaternion.cs
- SqlCachedBuffer.cs
- HyperLink.cs
- WebException.cs
- XmlDataSourceView.cs
- EtwProvider.cs
- XmlSchemaImporter.cs