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
- DateTimeOffsetConverter.cs
- SignatureHelper.cs
- MailHeaderInfo.cs
- RelationshipFixer.cs
- BaseProcessProtocolHandler.cs
- mediapermission.cs
- PerformanceCounterCategory.cs
- KeyGestureValueSerializer.cs
- TiffBitmapDecoder.cs
- XmlnsCache.cs
- StrongNameKeyPair.cs
- SecurityVerifiedMessage.cs
- NativeCppClassAttribute.cs
- Vector3DCollectionValueSerializer.cs
- GridView.cs
- Light.cs
- MouseEventArgs.cs
- DetailsViewInsertEventArgs.cs
- RepeaterItem.cs
- MissingMemberException.cs
- GridViewRowPresenterBase.cs
- AutomationAttributeInfo.cs
- _AutoWebProxyScriptHelper.cs
- PageThemeBuildProvider.cs
- PropertyToken.cs
- TagPrefixInfo.cs
- ToolStripItemCollection.cs
- EntityDataSourceReferenceGroup.cs
- ComponentChangingEvent.cs
- RadioButtonList.cs
- Enum.cs
- PeerMessageDispatcher.cs
- _LazyAsyncResult.cs
- SqlAggregateChecker.cs
- FontFaceLayoutInfo.cs
- CultureData.cs
- SqlClientPermission.cs
- OperandQuery.cs
- XmlSchemaObject.cs
- SocketPermission.cs
- DesignerExtenders.cs
- ApplicationSettingsBase.cs
- FilteredXmlReader.cs
- DataGridViewComboBoxEditingControl.cs
- PopupRoot.cs
- DBDataPermissionAttribute.cs
- XhtmlBasicLinkAdapter.cs
- ArraySet.cs
- FixedTextPointer.cs
- TraceLevelStore.cs
- securestring.cs
- UIElement.cs
- serverconfig.cs
- NullableFloatAverageAggregationOperator.cs
- XmlArrayItemAttributes.cs
- ZipIOExtraField.cs
- RetrieveVirtualItemEventArgs.cs
- TraceHandler.cs
- WmfPlaceableFileHeader.cs
- InkCollectionBehavior.cs
- DataGridColumnDropSeparator.cs
- ServiceOperationDetailViewControl.cs
- TargetPerspective.cs
- TextDecoration.cs
- GeneralTransform3D.cs
- TraceContext.cs
- WorkflowStateRollbackService.cs
- BitmapEffectGroup.cs
- DependencyPropertyChangedEventArgs.cs
- ToolStripDropDownMenu.cs
- FormatterConverter.cs
- Binding.cs
- CopyAction.cs
- SubpageParagraph.cs
- DataRelation.cs
- CodeEventReferenceExpression.cs
- TreeNodeMouseHoverEvent.cs
- WebPartDisplayMode.cs
- Int32Animation.cs
- Walker.cs
- Byte.cs
- ImageButton.cs
- ScriptingWebServicesSectionGroup.cs
- TextTreeExtractElementUndoUnit.cs
- EntryWrittenEventArgs.cs
- DragDeltaEventArgs.cs
- StringPropertyBuilder.cs
- PointKeyFrameCollection.cs
- DataStreamFromComStream.cs
- DefaultPrintController.cs
- MetadataItemCollectionFactory.cs
- EntitySqlQueryCacheKey.cs
- StructuredTypeEmitter.cs
- ActiveDocumentEvent.cs
- FrameworkContentElement.cs
- MergeFailedEvent.cs
- Part.cs
- SmiGettersStream.cs
- sqlmetadatafactory.cs
- Control.cs