Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / security / system / security / authentication / ExtendedProtection / ExtendedProtectionPolicy.cs / 1305376 / ExtendedProtectionPolicy.cs
//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.Net; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Security.Permissions; using System.Text; namespace System.Security.Authentication.ExtendedProtection { ////// This class contains the necessary settings for specifying how Extended Protection /// should behave. Use one of the Build* methods to create an instance of this type. /// [Serializable] [TypeConverter(typeof(ExtendedProtectionPolicyTypeConverter))] public class ExtendedProtectionPolicy : ISerializable { private const string policyEnforcementName = "policyEnforcement"; private const string protectionScenarioName = "protectionScenario"; private const string customServiceNamesName = "customServiceNames"; private const string customChannelBindingName = "customChannelBinding"; private ServiceNameCollection customServiceNames; private PolicyEnforcement policyEnforcement; private ProtectionScenario protectionScenario; private ChannelBinding customChannelBinding; public ExtendedProtectionPolicy(PolicyEnforcement policyEnforcement, ProtectionScenario protectionScenario, ServiceNameCollection customServiceNames) { if (policyEnforcement == PolicyEnforcement.Never) { throw new ArgumentException(SR.GetString(SR.security_ExtendedProtectionPolicy_UseDifferentConstructorForNever), "policyEnforcement"); } if (customServiceNames != null && customServiceNames.Count == 0) { throw new ArgumentException(SR.GetString(SR.security_ExtendedProtectionPolicy_NoEmptyServiceNameCollection), "customServiceNames"); } this.policyEnforcement = policyEnforcement; this.protectionScenario = protectionScenario; this.customServiceNames = customServiceNames; } public ExtendedProtectionPolicy(PolicyEnforcement policyEnforcement, ProtectionScenario protectionScenario, ICollection customServiceNames) : this(policyEnforcement, protectionScenario, customServiceNames == null ? (ServiceNameCollection)null : new ServiceNameCollection(customServiceNames)) { } public ExtendedProtectionPolicy(PolicyEnforcement policyEnforcement, ChannelBinding customChannelBinding) { if (policyEnforcement == PolicyEnforcement.Never) { throw new ArgumentException(SR.GetString(SR.security_ExtendedProtectionPolicy_UseDifferentConstructorForNever), "policyEnforcement"); } if (customChannelBinding == null) { throw new ArgumentNullException("customChannelBinding"); } this.policyEnforcement = policyEnforcement; this.protectionScenario = ProtectionScenario.TransportSelected; this.customChannelBinding = customChannelBinding; } public ExtendedProtectionPolicy(PolicyEnforcement policyEnforcement) { // this is the only constructor which allows PolicyEnforcement.Never. this.policyEnforcement = policyEnforcement; this.protectionScenario = ProtectionScenario.TransportSelected; } protected ExtendedProtectionPolicy(SerializationInfo info, StreamingContext context) { policyEnforcement = (PolicyEnforcement)info.GetInt32(policyEnforcementName); protectionScenario = (ProtectionScenario)info.GetInt32(protectionScenarioName); customServiceNames = (ServiceNameCollection)info.GetValue(customServiceNamesName, typeof(ServiceNameCollection)); byte[] channelBindingData = (byte[])info.GetValue(customChannelBindingName, typeof(byte[])); if (channelBindingData != null) { customChannelBinding = SafeLocalFreeChannelBinding.LocalAlloc(channelBindingData.Length); Marshal.Copy(channelBindingData, 0, customChannelBinding.DangerousGetHandle(), channelBindingData.Length); } } public ServiceNameCollection CustomServiceNames { get { return customServiceNames; } } public PolicyEnforcement PolicyEnforcement { get { return policyEnforcement; } } public ProtectionScenario ProtectionScenario { get { return protectionScenario; } } public ChannelBinding CustomChannelBinding { get { return customChannelBinding; } } public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append("ProtectionScenario="); sb.Append(protectionScenario.ToString()); sb.Append("; PolicyEnforcement="); sb.Append(policyEnforcement.ToString()); sb.Append("; CustomChannelBinding="); if (customChannelBinding == null) { sb.Append(""); } else { sb.Append(customChannelBinding.ToString()); } sb.Append("; ServiceNames="); if (customServiceNames == null) { sb.Append(" "); } else { bool first = true; foreach (string serviceName in customServiceNames) { if (first) { first = false; } else { sb.Append(", "); } sb.Append(serviceName); } } return sb.ToString(); } public static bool OSSupportsExtendedProtection { get { return AuthenticationManager.OSSupportsExtendedProtection; } } [SecurityPermissionAttribute(SecurityAction.LinkDemand, SerializationFormatter = true)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue(policyEnforcementName, (int)policyEnforcement); info.AddValue(protectionScenarioName, (int)protectionScenario); info.AddValue(customServiceNamesName, customServiceNames, typeof(ServiceNameCollection)); if (customChannelBinding == null) { info.AddValue(customChannelBindingName, null, typeof(byte[])); } else { byte[] channelBindingData = new byte[customChannelBinding.Size]; Marshal.Copy(customChannelBinding.DangerousGetHandle(), channelBindingData, 0, customChannelBinding.Size); info.AddValue(customChannelBindingName, channelBindingData, typeof(byte[])); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.Net; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Security.Permissions; using System.Text; namespace System.Security.Authentication.ExtendedProtection { /// /// This class contains the necessary settings for specifying how Extended Protection /// should behave. Use one of the Build* methods to create an instance of this type. /// [Serializable] [TypeConverter(typeof(ExtendedProtectionPolicyTypeConverter))] public class ExtendedProtectionPolicy : ISerializable { private const string policyEnforcementName = "policyEnforcement"; private const string protectionScenarioName = "protectionScenario"; private const string customServiceNamesName = "customServiceNames"; private const string customChannelBindingName = "customChannelBinding"; private ServiceNameCollection customServiceNames; private PolicyEnforcement policyEnforcement; private ProtectionScenario protectionScenario; private ChannelBinding customChannelBinding; public ExtendedProtectionPolicy(PolicyEnforcement policyEnforcement, ProtectionScenario protectionScenario, ServiceNameCollection customServiceNames) { if (policyEnforcement == PolicyEnforcement.Never) { throw new ArgumentException(SR.GetString(SR.security_ExtendedProtectionPolicy_UseDifferentConstructorForNever), "policyEnforcement"); } if (customServiceNames != null && customServiceNames.Count == 0) { throw new ArgumentException(SR.GetString(SR.security_ExtendedProtectionPolicy_NoEmptyServiceNameCollection), "customServiceNames"); } this.policyEnforcement = policyEnforcement; this.protectionScenario = protectionScenario; this.customServiceNames = customServiceNames; } public ExtendedProtectionPolicy(PolicyEnforcement policyEnforcement, ProtectionScenario protectionScenario, ICollection customServiceNames) : this(policyEnforcement, protectionScenario, customServiceNames == null ? (ServiceNameCollection)null : new ServiceNameCollection(customServiceNames)) { } public ExtendedProtectionPolicy(PolicyEnforcement policyEnforcement, ChannelBinding customChannelBinding) { if (policyEnforcement == PolicyEnforcement.Never) { throw new ArgumentException(SR.GetString(SR.security_ExtendedProtectionPolicy_UseDifferentConstructorForNever), "policyEnforcement"); } if (customChannelBinding == null) { throw new ArgumentNullException("customChannelBinding"); } this.policyEnforcement = policyEnforcement; this.protectionScenario = ProtectionScenario.TransportSelected; this.customChannelBinding = customChannelBinding; } public ExtendedProtectionPolicy(PolicyEnforcement policyEnforcement) { // this is the only constructor which allows PolicyEnforcement.Never. this.policyEnforcement = policyEnforcement; this.protectionScenario = ProtectionScenario.TransportSelected; } protected ExtendedProtectionPolicy(SerializationInfo info, StreamingContext context) { policyEnforcement = (PolicyEnforcement)info.GetInt32(policyEnforcementName); protectionScenario = (ProtectionScenario)info.GetInt32(protectionScenarioName); customServiceNames = (ServiceNameCollection)info.GetValue(customServiceNamesName, typeof(ServiceNameCollection)); byte[] channelBindingData = (byte[])info.GetValue(customChannelBindingName, typeof(byte[])); if (channelBindingData != null) { customChannelBinding = SafeLocalFreeChannelBinding.LocalAlloc(channelBindingData.Length); Marshal.Copy(channelBindingData, 0, customChannelBinding.DangerousGetHandle(), channelBindingData.Length); } } public ServiceNameCollection CustomServiceNames { get { return customServiceNames; } } public PolicyEnforcement PolicyEnforcement { get { return policyEnforcement; } } public ProtectionScenario ProtectionScenario { get { return protectionScenario; } } public ChannelBinding CustomChannelBinding { get { return customChannelBinding; } } public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append("ProtectionScenario="); sb.Append(protectionScenario.ToString()); sb.Append("; PolicyEnforcement="); sb.Append(policyEnforcement.ToString()); sb.Append("; CustomChannelBinding="); if (customChannelBinding == null) { sb.Append(""); } else { sb.Append(customChannelBinding.ToString()); } sb.Append("; ServiceNames="); if (customServiceNames == null) { sb.Append(" "); } else { bool first = true; foreach (string serviceName in customServiceNames) { if (first) { first = false; } else { sb.Append(", "); } sb.Append(serviceName); } } return sb.ToString(); } public static bool OSSupportsExtendedProtection { get { return AuthenticationManager.OSSupportsExtendedProtection; } } [SecurityPermissionAttribute(SecurityAction.LinkDemand, SerializationFormatter = true)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue(policyEnforcementName, (int)policyEnforcement); info.AddValue(protectionScenarioName, (int)protectionScenario); info.AddValue(customServiceNamesName, customServiceNames, typeof(ServiceNameCollection)); if (customChannelBinding == null) { info.AddValue(customChannelBindingName, null, typeof(byte[])); } else { byte[] channelBindingData = new byte[customChannelBinding.Size]; Marshal.Copy(customChannelBinding.DangerousGetHandle(), channelBindingData, 0, customChannelBinding.Size); info.AddValue(customChannelBindingName, channelBindingData, typeof(byte[])); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProfileService.cs
- DataGrid.cs
- Canvas.cs
- ObjectMemberMapping.cs
- FixedHyperLink.cs
- WebPartHeaderCloseVerb.cs
- exports.cs
- ScopedKnownTypes.cs
- ImageListDesigner.cs
- Preprocessor.cs
- AccessorTable.cs
- OutputCacheProviderCollection.cs
- RangeBaseAutomationPeer.cs
- Separator.cs
- UpdateRecord.cs
- Mapping.cs
- Sql8ConformanceChecker.cs
- EnumBuilder.cs
- CompositeActivityTypeDescriptor.cs
- CoreSwitches.cs
- filewebrequest.cs
- XmlImplementation.cs
- RequiredFieldValidator.cs
- HtmlToClrEventProxy.cs
- MouseEvent.cs
- XmlQuerySequence.cs
- SmiEventSink.cs
- Canvas.cs
- MultipartContentParser.cs
- MonitorWrapper.cs
- DnsPermission.cs
- TextFormatterImp.cs
- RSAOAEPKeyExchangeDeformatter.cs
- SiteMap.cs
- ChineseLunisolarCalendar.cs
- SafeRightsManagementEnvironmentHandle.cs
- FileChangeNotifier.cs
- PlainXmlDeserializer.cs
- HMACSHA512.cs
- PinnedBufferMemoryStream.cs
- XmlDataSourceView.cs
- FrameDimension.cs
- util.cs
- AmbientValueAttribute.cs
- MethodToken.cs
- StateWorkerRequest.cs
- RepeaterItemCollection.cs
- PropertyMapper.cs
- X509RawDataKeyIdentifierClause.cs
- GotoExpression.cs
- dataSvcMapFileLoader.cs
- ResourceContainer.cs
- ConfigurationSectionGroup.cs
- WebPartDisplayModeCollection.cs
- HighlightComponent.cs
- Ray3DHitTestResult.cs
- TextChange.cs
- _ConnectStream.cs
- Border.cs
- OdbcPermission.cs
- OAVariantLib.cs
- DescendantBaseQuery.cs
- Directory.cs
- NamedPermissionSet.cs
- HtmlDocument.cs
- ProjectedWrapper.cs
- FixedMaxHeap.cs
- BadImageFormatException.cs
- DateTimeValueSerializerContext.cs
- TableStyle.cs
- Formatter.cs
- NativeMethods.cs
- RepeaterItem.cs
- SaveFileDialog.cs
- QueryCacheEntry.cs
- MULTI_QI.cs
- EntityDataSourceEntityTypeFilterItem.cs
- ListItemCollection.cs
- EntityDataSourceContextCreatedEventArgs.cs
- BinaryFormatter.cs
- ComponentResourceManager.cs
- ListBindingConverter.cs
- TextBoxView.cs
- CustomDictionarySources.cs
- DynamicRendererThreadManager.cs
- DynamicQueryStringParameter.cs
- CatalogPart.cs
- XmlReflectionImporter.cs
- ListViewEditEventArgs.cs
- FileLoadException.cs
- shaperfactoryquerycacheentry.cs
- FocusWithinProperty.cs
- PenCursorManager.cs
- StyleSheet.cs
- Enlistment.cs
- ScrollContentPresenter.cs
- CompareInfo.cs
- ReflectionTypeLoadException.cs
- MetadataSerializer.cs
- DataRelationCollection.cs