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)
{
List policies = 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
- Rule.cs
- PlatformNotSupportedException.cs
- SymmetricKeyWrap.cs
- EventLogger.cs
- GiveFeedbackEventArgs.cs
- RegistrationServices.cs
- FontStyles.cs
- base64Transforms.cs
- DialogDivider.cs
- BeginStoryboard.cs
- SelectingProviderEventArgs.cs
- OleDbSchemaGuid.cs
- TextEffectResolver.cs
- EmbeddedMailObject.cs
- COM2Properties.cs
- RoutedEventHandlerInfo.cs
- IntegerValidator.cs
- DataGridCaption.cs
- PerformanceCounterLib.cs
- CompilerCollection.cs
- WindowsListView.cs
- ModelTreeEnumerator.cs
- DeflateEmulationStream.cs
- Instrumentation.cs
- ReliableInputConnection.cs
- MetadataFile.cs
- DataGridViewTextBoxEditingControl.cs
- TypeConverterHelper.cs
- Opcode.cs
- CharacterBufferReference.cs
- TransformPatternIdentifiers.cs
- UserNameSecurityTokenAuthenticator.cs
- DataShape.cs
- ResourceAttributes.cs
- MethodToken.cs
- RedirectionProxy.cs
- SortableBindingList.cs
- ItemContainerProviderWrapper.cs
- CompilerState.cs
- InternalControlCollection.cs
- FontResourceCache.cs
- QueryAsyncResult.cs
- NeutralResourcesLanguageAttribute.cs
- FillBehavior.cs
- FontDriver.cs
- ReachDocumentPageSerializerAsync.cs
- BamlRecordWriter.cs
- PeerChannelFactory.cs
- Accessors.cs
- EncoderExceptionFallback.cs
- HtmlShim.cs
- CallSiteOps.cs
- CellTreeSimplifier.cs
- UriScheme.cs
- adornercollection.cs
- DataGridViewButtonColumn.cs
- ObjectReferenceStack.cs
- RC2CryptoServiceProvider.cs
- UseManagedPresentationBindingElement.cs
- QilName.cs
- AxHost.cs
- ComboBoxRenderer.cs
- ReachSerializationCacheItems.cs
- EnvelopeVersion.cs
- WebUtil.cs
- XmlQueryStaticData.cs
- RayHitTestParameters.cs
- ConnectionManager.cs
- Zone.cs
- GifBitmapEncoder.cs
- MsmqBindingBase.cs
- NamespaceList.cs
- ColorContextHelper.cs
- XmlComplianceUtil.cs
- ResolveCriteria.cs
- ValidationResult.cs
- IApplicationTrustManager.cs
- CompareInfo.cs
- DateTimeSerializationSection.cs
- ExtensionFile.cs
- _SslSessionsCache.cs
- OdbcConnection.cs
- WindowsNonControl.cs
- StringConcat.cs
- ElasticEase.cs
- ReverseInheritProperty.cs
- AmbientLight.cs
- DynamicField.cs
- PixelShader.cs
- ToolStripMenuItemCodeDomSerializer.cs
- MonikerUtility.cs
- VariableAction.cs
- HttpModuleCollection.cs
- RuleSettings.cs
- DrawListViewColumnHeaderEventArgs.cs
- ScrollChrome.cs
- Array.cs
- RouteItem.cs
- ComContractElement.cs
- GreaterThan.cs