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
- AdapterDictionary.cs
- HttpHeaderCollection.cs
- SplitContainerDesigner.cs
- IndentedWriter.cs
- ClientSideQueueItem.cs
- ExpressionList.cs
- XPathEmptyIterator.cs
- ControlOperationInvoker.cs
- ButtonBaseAutomationPeer.cs
- ScrollPatternIdentifiers.cs
- XmlNamespaceDeclarationsAttribute.cs
- ExternalException.cs
- MethodBuilderInstantiation.cs
- DecoderNLS.cs
- XmlTypeMapping.cs
- XPathArrayIterator.cs
- VectorAnimationUsingKeyFrames.cs
- Decimal.cs
- DBCSCodePageEncoding.cs
- MetadataUtilsSmi.cs
- ObjectDataSourceView.cs
- recordstatefactory.cs
- ContainerParaClient.cs
- UDPClient.cs
- NavigationCommands.cs
- DataKey.cs
- DashStyle.cs
- WmlMobileTextWriter.cs
- HttpServerVarsCollection.cs
- ApplicationServicesHostFactory.cs
- WorkflowServiceInstance.cs
- OdbcConnectionStringbuilder.cs
- NonPrimarySelectionGlyph.cs
- Brush.cs
- Random.cs
- XmlMemberMapping.cs
- RootBrowserWindowProxy.cs
- PenThread.cs
- WindowsTreeView.cs
- SqlNodeTypeOperators.cs
- MediaPlayer.cs
- WebSysDisplayNameAttribute.cs
- ToolStripContentPanelRenderEventArgs.cs
- EntryWrittenEventArgs.cs
- Stylesheet.cs
- HttpCookieCollection.cs
- ScriptControlManager.cs
- InternalDuplexBindingElement.cs
- EastAsianLunisolarCalendar.cs
- Misc.cs
- HostedElements.cs
- TableCell.cs
- BamlBinaryWriter.cs
- DelegateSerializationHolder.cs
- SHA384Managed.cs
- CommentAction.cs
- TemplateContentLoader.cs
- WebPartTransformerCollection.cs
- AxHostDesigner.cs
- SectionUpdates.cs
- QilInvokeEarlyBound.cs
- DbSetClause.cs
- Win32.cs
- MobileRedirect.cs
- WsdlWriter.cs
- EnumerableRowCollectionExtensions.cs
- SmiMetaData.cs
- TypeGeneratedEventArgs.cs
- PublishLicense.cs
- Parameter.cs
- XmlSchemaValidator.cs
- FilterQueryOptionExpression.cs
- HandledEventArgs.cs
- SqlDataSourceFilteringEventArgs.cs
- DynamicRenderer.cs
- ColorConverter.cs
- NotifyCollectionChangedEventArgs.cs
- PropertyChangedEventArgs.cs
- BufferAllocator.cs
- AlignmentYValidation.cs
- XmlWellformedWriter.cs
- CompoundFileReference.cs
- MatrixAnimationBase.cs
- XmlTextReader.cs
- MenuTracker.cs
- CultureTableRecord.cs
- DataSourceControl.cs
- BitmapImage.cs
- DateTimeStorage.cs
- ProviderSettings.cs
- Privilege.cs
- WorkflowApplicationAbortedException.cs
- AutomationTextAttribute.cs
- SqlIdentifier.cs
- GroupBox.cs
- BindingMemberInfo.cs
- mactripleDES.cs
- PnrpPermission.cs
- RegexCaptureCollection.cs
- InstanceKey.cs