Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / Configuration / SmtpNetworkElement.cs / 1 / SmtpNetworkElement.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Configuration { using System; using System.Configuration; using System.Net; using System.Net.Mail; using System.Reflection; using System.Security.Permissions; public sealed class SmtpNetworkElement : ConfigurationElement { public SmtpNetworkElement() { this.properties.Add(this.defaultCredentials); this.properties.Add(this.host); this.properties.Add(this.password); this.properties.Add(this.port); this.properties.Add(this.userName); } protected override void PostDeserialize() { // Perf optimization. If the configuration is coming from machine.config // It is safe and we don't need to check for permissions. if (EvaluationContext.IsMachineLevel) return; PropertyInformation portPropertyInfo = ElementInformation.Properties[ConfigurationStrings.Port]; if (portPropertyInfo.ValueOrigin == PropertyValueOrigin.SetHere && (int)portPropertyInfo.Value != (int)portPropertyInfo.DefaultValue) { try { (new SmtpPermission(SmtpAccess.ConnectToUnrestrictedPort)).Demand(); } catch (Exception exception) { throw new ConfigurationErrorsException( SR.GetString(SR.net_config_property_permission, portPropertyInfo.Name), exception); } } } protected override ConfigurationPropertyCollection Properties { get { return this.properties; } } [ConfigurationProperty(ConfigurationStrings.DefaultCredentials, DefaultValue = false)] public bool DefaultCredentials { get { return (bool)this[this.defaultCredentials]; } set { this[this.defaultCredentials] = value; } } [ConfigurationProperty(ConfigurationStrings.Host)] public string Host { get { return (string)this[this.host]; } set { this[this.host] = value; } } [ConfigurationProperty(ConfigurationStrings.Password)] public string Password { get { return (string)this[this.password]; } set { this[this.password] = value; } } [ConfigurationProperty(ConfigurationStrings.Port, DefaultValue = 25)] public int Port { get { return (int)this[this.port]; } set { // this[this.port] = value; } } [ConfigurationProperty(ConfigurationStrings.UserName)] public string UserName { get { return (string)this[this.userName]; } set { this[this.userName] = value; } } // ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); readonly ConfigurationProperty defaultCredentials = new ConfigurationProperty(ConfigurationStrings.DefaultCredentials, typeof(bool), false, ConfigurationPropertyOptions.None); readonly ConfigurationProperty host = new ConfigurationProperty(ConfigurationStrings.Host, typeof(string), null, ConfigurationPropertyOptions.None); readonly ConfigurationProperty password = new ConfigurationProperty(ConfigurationStrings.Password, typeof(string), null, ConfigurationPropertyOptions.None); readonly ConfigurationProperty port = new ConfigurationProperty(ConfigurationStrings.Port, typeof(int), 25, null, new IntegerValidator(IPEndPoint.MinPort+1, IPEndPoint.MaxPort), ConfigurationPropertyOptions.None); readonly ConfigurationProperty userName = new ConfigurationProperty(ConfigurationStrings.UserName, typeof(string), null, ConfigurationPropertyOptions.None); } internal sealed class SmtpNetworkElementInternal { internal SmtpNetworkElementInternal(SmtpNetworkElement element) { this.host = element.Host; this.port = element.Port; if (element.DefaultCredentials) { this.credential = (NetworkCredential)CredentialCache.DefaultCredentials; } else if (element.UserName != null && element.UserName.Length > 0) { this.credential = new NetworkCredential(element.UserName, element.Password); } } internal NetworkCredential Credential { get { return this.credential; } } internal string Host { get { return this.host; } } internal int Port { get { return this.port; } } string host; int port; NetworkCredential credential = null; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Configuration { using System; using System.Configuration; using System.Net; using System.Net.Mail; using System.Reflection; using System.Security.Permissions; public sealed class SmtpNetworkElement : ConfigurationElement { public SmtpNetworkElement() { this.properties.Add(this.defaultCredentials); this.properties.Add(this.host); this.properties.Add(this.password); this.properties.Add(this.port); this.properties.Add(this.userName); } protected override void PostDeserialize() { // Perf optimization. If the configuration is coming from machine.config // It is safe and we don't need to check for permissions. if (EvaluationContext.IsMachineLevel) return; PropertyInformation portPropertyInfo = ElementInformation.Properties[ConfigurationStrings.Port]; if (portPropertyInfo.ValueOrigin == PropertyValueOrigin.SetHere && (int)portPropertyInfo.Value != (int)portPropertyInfo.DefaultValue) { try { (new SmtpPermission(SmtpAccess.ConnectToUnrestrictedPort)).Demand(); } catch (Exception exception) { throw new ConfigurationErrorsException( SR.GetString(SR.net_config_property_permission, portPropertyInfo.Name), exception); } } } protected override ConfigurationPropertyCollection Properties { get { return this.properties; } } [ConfigurationProperty(ConfigurationStrings.DefaultCredentials, DefaultValue = false)] public bool DefaultCredentials { get { return (bool)this[this.defaultCredentials]; } set { this[this.defaultCredentials] = value; } } [ConfigurationProperty(ConfigurationStrings.Host)] public string Host { get { return (string)this[this.host]; } set { this[this.host] = value; } } [ConfigurationProperty(ConfigurationStrings.Password)] public string Password { get { return (string)this[this.password]; } set { this[this.password] = value; } } [ConfigurationProperty(ConfigurationStrings.Port, DefaultValue = 25)] public int Port { get { return (int)this[this.port]; } set { // this[this.port] = value; } } [ConfigurationProperty(ConfigurationStrings.UserName)] public string UserName { get { return (string)this[this.userName]; } set { this[this.userName] = value; } } // ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); readonly ConfigurationProperty defaultCredentials = new ConfigurationProperty(ConfigurationStrings.DefaultCredentials, typeof(bool), false, ConfigurationPropertyOptions.None); readonly ConfigurationProperty host = new ConfigurationProperty(ConfigurationStrings.Host, typeof(string), null, ConfigurationPropertyOptions.None); readonly ConfigurationProperty password = new ConfigurationProperty(ConfigurationStrings.Password, typeof(string), null, ConfigurationPropertyOptions.None); readonly ConfigurationProperty port = new ConfigurationProperty(ConfigurationStrings.Port, typeof(int), 25, null, new IntegerValidator(IPEndPoint.MinPort+1, IPEndPoint.MaxPort), ConfigurationPropertyOptions.None); readonly ConfigurationProperty userName = new ConfigurationProperty(ConfigurationStrings.UserName, typeof(string), null, ConfigurationPropertyOptions.None); } internal sealed class SmtpNetworkElementInternal { internal SmtpNetworkElementInternal(SmtpNetworkElement element) { this.host = element.Host; this.port = element.Port; if (element.DefaultCredentials) { this.credential = (NetworkCredential)CredentialCache.DefaultCredentials; } else if (element.UserName != null && element.UserName.Length > 0) { this.credential = new NetworkCredential(element.UserName, element.Password); } } internal NetworkCredential Credential { get { return this.credential; } } internal string Host { get { return this.host; } } internal int Port { get { return this.port; } } string host; int port; NetworkCredential credential = null; } } // 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
- ValidationResult.cs
- UnmanagedMemoryStream.cs
- HandleCollector.cs
- SecurityTokenException.cs
- PageAsyncTask.cs
- UserControl.cs
- DbSourceParameterCollection.cs
- SslSecurityTokenParameters.cs
- ServiceModelActivity.cs
- SqlNodeAnnotation.cs
- TemplateManager.cs
- RootNamespaceAttribute.cs
- Directory.cs
- DesignerAdRotatorAdapter.cs
- XmlAnyAttributeAttribute.cs
- IOThreadTimer.cs
- AssemblyCollection.cs
- CollectionEditor.cs
- MimeTextImporter.cs
- CompiledQuery.cs
- XmlNavigatorStack.cs
- ComponentSerializationService.cs
- PipelineModuleStepContainer.cs
- WindowsNonControl.cs
- BoolLiteral.cs
- CommandField.cs
- SymDocumentType.cs
- TogglePattern.cs
- FontWeightConverter.cs
- MediaTimeline.cs
- StorageEntityContainerMapping.cs
- WsdlBuildProvider.cs
- documentsequencetextpointer.cs
- RadioButtonFlatAdapter.cs
- MessageQueuePermissionEntry.cs
- GcSettings.cs
- HealthMonitoringSectionHelper.cs
- BaseServiceProvider.cs
- CalloutQueueItem.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- OutputCacheProfile.cs
- BitmapImage.cs
- Maps.cs
- DependencyPropertyHelper.cs
- TransformerInfo.cs
- VBCodeProvider.cs
- ToolStripTextBox.cs
- DataControlExtensions.cs
- WebPartDescriptionCollection.cs
- EtwTrackingParticipant.cs
- XmlHierarchicalDataSourceView.cs
- DockingAttribute.cs
- InfoCardCryptoHelper.cs
- DoubleStorage.cs
- CompiledRegexRunner.cs
- ServicesUtilities.cs
- SpecialNameAttribute.cs
- HashCodeCombiner.cs
- CodeTryCatchFinallyStatement.cs
- SiteMapHierarchicalDataSourceView.cs
- CallInfo.cs
- XdrBuilder.cs
- Comparer.cs
- Matrix3DValueSerializer.cs
- ExplicitDiscriminatorMap.cs
- SQLInt32Storage.cs
- DependencyObjectType.cs
- OleDbError.cs
- HtmlInputCheckBox.cs
- FileDialogPermission.cs
- Win32Native.cs
- XmlSerializerNamespaces.cs
- XmlPropertyBag.cs
- LinearGradientBrush.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- WebSysDefaultValueAttribute.cs
- DefaultSettingsSection.cs
- invalidudtexception.cs
- DocumentXPathNavigator.cs
- DbQueryCommandTree.cs
- WorkflowQueue.cs
- SizeValueSerializer.cs
- WindowsToolbarAsMenu.cs
- ConstantExpression.cs
- BitmapFrameDecode.cs
- SafeLibraryHandle.cs
- Overlapped.cs
- OleServicesContext.cs
- SiteMapNodeItemEventArgs.cs
- MailMessageEventArgs.cs
- AnnotationMap.cs
- MediaElementAutomationPeer.cs
- InvalidOleVariantTypeException.cs
- SchemaExporter.cs
- SchemaElementLookUpTable.cs
- RadioButton.cs
- LineBreakRecord.cs
- RowUpdatedEventArgs.cs
- AssemblyBuilder.cs
- ReliabilityContractAttribute.cs