Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Configuration / System / Configuration / ProtectedConfigurationSection.cs / 1 / ProtectedConfigurationSection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System.Collections; using System.Collections.Specialized; using System.Xml; using System.Globalization; using System.Security.Permissions; public sealed class ProtectedConfigurationSection : ConfigurationSection { internal ProtectedConfigurationProvider GetProviderFromName(string providerName) { ProviderSettings ps = Providers[providerName]; if (ps == null) { throw new Exception(SR.GetString(SR.ProtectedConfigurationProvider_not_found, providerName)); } return InstantiateProvider(ps); } internal ProtectedConfigurationProviderCollection GetAllProviders() { ProtectedConfigurationProviderCollection coll = new ProtectedConfigurationProviderCollection(); foreach(ProviderSettings ps in Providers) { coll.Add(InstantiateProvider(ps)); } return coll; } [PermissionSet(SecurityAction.Assert, Unrestricted=true)] private ProtectedConfigurationProvider CreateAndInitializeProviderWithAssert(Type t, ProviderSettings pn) { ProtectedConfigurationProvider provider = (ProtectedConfigurationProvider)TypeUtil.CreateInstanceWithReflectionPermission(t); NameValueCollection pars = pn.Parameters; NameValueCollection cloneParams = new NameValueCollection(pars.Count); foreach (string key in pars) { cloneParams[key] = pars[key]; } provider.Initialize(pn.Name, cloneParams); return provider; } private ProtectedConfigurationProvider InstantiateProvider(ProviderSettings pn) { Type t = TypeUtil.GetTypeWithReflectionPermission(pn.Type, true); if (!typeof(ProtectedConfigurationProvider).IsAssignableFrom(t)) { throw new Exception(SR.GetString(SR.WrongType_of_Protected_provider)); } // Needs to check APTCA bit. See VSWhidbey 429996. if (!TypeUtil.IsTypeAllowedInConfig(t)) { throw new Exception(SR.GetString(SR.Type_from_untrusted_assembly, t.FullName)); } // Needs to check Assert Fulltrust in order for runtime to work. See VSWhidbey 429996. return CreateAndInitializeProviderWithAssert(t, pn); } internal static string DecryptSection(string encryptedXml, ProtectedConfigurationProvider provider) { XmlDocument doc = new XmlDocument(); doc.LoadXml(encryptedXml); XmlNode resultNode = provider.Decrypt(doc.DocumentElement); return resultNode.OuterXml; } private const string EncryptedSectionTemplate = "<{0} {1}=\"{2}\"> {3} {0}>"; internal static string FormatEncryptedSection(string encryptedXml, string sectionName, string providerName) { return String.Format(CultureInfo.InvariantCulture, EncryptedSectionTemplate, sectionName, // The section to encrypt BaseConfigurationRecord.KEYWORD_PROTECTION_PROVIDER, // protectionProvider keyword providerName, // The provider name encryptedXml // the encrypted xml ); } internal static string EncryptSection(string clearXml, ProtectedConfigurationProvider provider) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.PreserveWhitespace = true; xmlDocument.LoadXml(clearXml); string sectionName = xmlDocument.DocumentElement.Name; XmlNode encNode = provider.Encrypt(xmlDocument.DocumentElement); return encNode.OuterXml; } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propProviders = new ConfigurationProperty("providers", typeof(ProtectedProviderSettings), new ProtectedProviderSettings(), ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propDefaultProvider = new ConfigurationProperty("defaultProvider", typeof(string), "RsaProtectedConfigurationProvider", null, ConfigurationProperty.NonEmptyStringValidator, ConfigurationPropertyOptions.None); static ProtectedConfigurationSection() { // Property initialization _properties = new ConfigurationPropertyCollection(); _properties.Add(_propProviders); _properties.Add(_propDefaultProvider); } public ProtectedConfigurationSection() { } protected internal override ConfigurationPropertyCollection Properties { get { return _properties; } } private ProtectedProviderSettings _Providers { get { return (ProtectedProviderSettings)base[_propProviders]; } } [ConfigurationProperty("providers")] public ProviderSettingsCollection Providers { get { return _Providers.Providers; } } [ConfigurationProperty("defaultProvider", DefaultValue = "RsaProtectedConfigurationProvider")] public string DefaultProvider { get { return (string)base[_propDefaultProvider]; } set { base[_propDefaultProvider] = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System.Collections; using System.Collections.Specialized; using System.Xml; using System.Globalization; using System.Security.Permissions; public sealed class ProtectedConfigurationSection : ConfigurationSection { internal ProtectedConfigurationProvider GetProviderFromName(string providerName) { ProviderSettings ps = Providers[providerName]; if (ps == null) { throw new Exception(SR.GetString(SR.ProtectedConfigurationProvider_not_found, providerName)); } return InstantiateProvider(ps); } internal ProtectedConfigurationProviderCollection GetAllProviders() { ProtectedConfigurationProviderCollection coll = new ProtectedConfigurationProviderCollection(); foreach(ProviderSettings ps in Providers) { coll.Add(InstantiateProvider(ps)); } return coll; } [PermissionSet(SecurityAction.Assert, Unrestricted=true)] private ProtectedConfigurationProvider CreateAndInitializeProviderWithAssert(Type t, ProviderSettings pn) { ProtectedConfigurationProvider provider = (ProtectedConfigurationProvider)TypeUtil.CreateInstanceWithReflectionPermission(t); NameValueCollection pars = pn.Parameters; NameValueCollection cloneParams = new NameValueCollection(pars.Count); foreach (string key in pars) { cloneParams[key] = pars[key]; } provider.Initialize(pn.Name, cloneParams); return provider; } private ProtectedConfigurationProvider InstantiateProvider(ProviderSettings pn) { Type t = TypeUtil.GetTypeWithReflectionPermission(pn.Type, true); if (!typeof(ProtectedConfigurationProvider).IsAssignableFrom(t)) { throw new Exception(SR.GetString(SR.WrongType_of_Protected_provider)); } // Needs to check APTCA bit. See VSWhidbey 429996. if (!TypeUtil.IsTypeAllowedInConfig(t)) { throw new Exception(SR.GetString(SR.Type_from_untrusted_assembly, t.FullName)); } // Needs to check Assert Fulltrust in order for runtime to work. See VSWhidbey 429996. return CreateAndInitializeProviderWithAssert(t, pn); } internal static string DecryptSection(string encryptedXml, ProtectedConfigurationProvider provider) { XmlDocument doc = new XmlDocument(); doc.LoadXml(encryptedXml); XmlNode resultNode = provider.Decrypt(doc.DocumentElement); return resultNode.OuterXml; } private const string EncryptedSectionTemplate = "<{0} {1}=\"{2}\"> {3} {0}>"; internal static string FormatEncryptedSection(string encryptedXml, string sectionName, string providerName) { return String.Format(CultureInfo.InvariantCulture, EncryptedSectionTemplate, sectionName, // The section to encrypt BaseConfigurationRecord.KEYWORD_PROTECTION_PROVIDER, // protectionProvider keyword providerName, // The provider name encryptedXml // the encrypted xml ); } internal static string EncryptSection(string clearXml, ProtectedConfigurationProvider provider) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.PreserveWhitespace = true; xmlDocument.LoadXml(clearXml); string sectionName = xmlDocument.DocumentElement.Name; XmlNode encNode = provider.Encrypt(xmlDocument.DocumentElement); return encNode.OuterXml; } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propProviders = new ConfigurationProperty("providers", typeof(ProtectedProviderSettings), new ProtectedProviderSettings(), ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propDefaultProvider = new ConfigurationProperty("defaultProvider", typeof(string), "RsaProtectedConfigurationProvider", null, ConfigurationProperty.NonEmptyStringValidator, ConfigurationPropertyOptions.None); static ProtectedConfigurationSection() { // Property initialization _properties = new ConfigurationPropertyCollection(); _properties.Add(_propProviders); _properties.Add(_propDefaultProvider); } public ProtectedConfigurationSection() { } protected internal override ConfigurationPropertyCollection Properties { get { return _properties; } } private ProtectedProviderSettings _Providers { get { return (ProtectedProviderSettings)base[_propProviders]; } } [ConfigurationProperty("providers")] public ProviderSettingsCollection Providers { get { return _Providers.Providers; } } [ConfigurationProperty("defaultProvider", DefaultValue = "RsaProtectedConfigurationProvider")] public string DefaultProvider { get { return (string)base[_propDefaultProvider]; } set { base[_propDefaultProvider] = value; } } } } // 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
- TextServicesDisplayAttributePropertyRanges.cs
- SqlFormatter.cs
- TreeNodeBinding.cs
- EasingQuaternionKeyFrame.cs
- RepeatButton.cs
- TextFormatterContext.cs
- CommandHelper.cs
- PageFunction.cs
- contentDescriptor.cs
- HyperLink.cs
- PartitionResolver.cs
- KeyPressEvent.cs
- CalendarItem.cs
- PointValueSerializer.cs
- IResourceProvider.cs
- SmtpReplyReaderFactory.cs
- StateElement.cs
- FocusWithinProperty.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- BulletedList.cs
- GeneralTransformGroup.cs
- LayoutUtils.cs
- DataServiceConfiguration.cs
- ButtonChrome.cs
- VisualCollection.cs
- CompensatableSequenceActivity.cs
- sqlnorm.cs
- ConfigurationStrings.cs
- FixedSOMContainer.cs
- UnSafeCharBuffer.cs
- Normalization.cs
- MonthChangedEventArgs.cs
- ProjectionAnalyzer.cs
- Console.cs
- XmlNodeChangedEventArgs.cs
- SelectionPatternIdentifiers.cs
- SmtpMail.cs
- PolicyManager.cs
- PreviewPageInfo.cs
- Pen.cs
- XmlDictionaryWriter.cs
- KeyManager.cs
- ThreadPool.cs
- Parser.cs
- HttpCachePolicy.cs
- LocatorBase.cs
- ViewCellRelation.cs
- LinearGradientBrush.cs
- KeyValueConfigurationElement.cs
- ObjectPersistData.cs
- XPathSelectionIterator.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- SqlMethodCallConverter.cs
- RtfControls.cs
- WindowsSecurityToken.cs
- ConfigurationValidatorBase.cs
- DateTimeOffset.cs
- HttpStreams.cs
- XsltContext.cs
- XPathNodeIterator.cs
- PartialCachingControl.cs
- TemplatePartAttribute.cs
- ProcessHostMapPath.cs
- SimpleTypeResolver.cs
- TypeValidationEventArgs.cs
- TypeExtension.cs
- LocationInfo.cs
- AliasExpr.cs
- HttpRuntime.cs
- ToolboxBitmapAttribute.cs
- SafeCancelMibChangeNotify.cs
- ClientRoleProvider.cs
- CustomErrorsSection.cs
- DelegateSerializationHolder.cs
- WebPartTransformerCollection.cs
- EventData.cs
- ConfigurationManagerHelper.cs
- ImageAttributes.cs
- WindowsImpersonationContext.cs
- ContainerParaClient.cs
- MaterialGroup.cs
- HtmlEncodedRawTextWriter.cs
- WebPartEditorApplyVerb.cs
- WindowsIPAddress.cs
- DataRow.cs
- _NativeSSPI.cs
- WorkflowMarkupElementEventArgs.cs
- GradientStopCollection.cs
- CacheHelper.cs
- LZCodec.cs
- PaintEvent.cs
- KeyedCollection.cs
- CodeTypeReferenceExpression.cs
- XmlCharCheckingReader.cs
- GeneralTransformGroup.cs
- EntityDataSourceMemberPath.cs
- ExceptionHandlers.cs
- Calendar.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- UnsafeMethods.cs