Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolStripDropDownButton.cs
- SQLInt64Storage.cs
- IgnoreFlushAndCloseStream.cs
- QueryExpr.cs
- IIS7WorkerRequest.cs
- DbConnectionPool.cs
- __FastResourceComparer.cs
- TextChangedEventArgs.cs
- FontWeights.cs
- TemplateColumn.cs
- MultiTrigger.cs
- DataGridViewLinkCell.cs
- ping.cs
- RemoteCryptoTokenProvider.cs
- SessionState.cs
- SamlDelegatingWriter.cs
- FontWeight.cs
- Int32CAMarshaler.cs
- DataSetMappper.cs
- IntSecurity.cs
- WorkflowMarkupSerializationManager.cs
- WindowsGraphicsCacheManager.cs
- And.cs
- ServiceDesigner.xaml.cs
- FlagsAttribute.cs
- Deflater.cs
- ByeMessage11.cs
- EntityProviderServices.cs
- SetState.cs
- SafeNativeMethods.cs
- PartialCachingAttribute.cs
- TypeSystem.cs
- NameValueCollection.cs
- DesignerSerializerAttribute.cs
- ServiceInfo.cs
- ProfileService.cs
- MethodCallConverter.cs
- MergeFailedEvent.cs
- ColumnPropertiesGroup.cs
- mongolianshape.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- MatrixCamera.cs
- SafeEventHandle.cs
- PreparingEnlistment.cs
- Merger.cs
- RpcResponse.cs
- SharedRuntimeState.cs
- SerializationSectionGroup.cs
- SoapReflectionImporter.cs
- SHA512.cs
- MonthCalendar.cs
- DataTableMappingCollection.cs
- RangeValidator.cs
- VarRefManager.cs
- DnsPermission.cs
- DataGridViewRowCancelEventArgs.cs
- JoinCqlBlock.cs
- OpacityConverter.cs
- TCEAdapterGenerator.cs
- ByteStorage.cs
- EditingMode.cs
- CorePropertiesFilter.cs
- XmlQueryTypeFactory.cs
- ActivationArguments.cs
- WsdlImporterElement.cs
- DataServiceRequestException.cs
- MultiBindingExpression.cs
- Gdiplus.cs
- IMembershipProvider.cs
- XmlWrappingWriter.cs
- typedescriptorpermission.cs
- AssociationEndMember.cs
- ClientSettingsSection.cs
- HtmlButton.cs
- ButtonField.cs
- TableCell.cs
- PolyQuadraticBezierSegment.cs
- Vector3DAnimationBase.cs
- ComponentChangingEvent.cs
- PlatformCulture.cs
- AbandonedMutexException.cs
- ViewManager.cs
- OleDbWrapper.cs
- TemplatePartAttribute.cs
- httpapplicationstate.cs
- ExtendedPropertiesHandler.cs
- AutoCompleteStringCollection.cs
- RemotingServices.cs
- TrustLevel.cs
- SqlRowUpdatedEvent.cs
- TokenBasedSetEnumerator.cs
- RealProxy.cs
- PeerNode.cs
- DataSourceDescriptorCollection.cs
- FormsAuthenticationTicket.cs
- SecureStringHasher.cs
- RemoteWebConfigurationHost.cs
- DescendentsWalkerBase.cs
- ProjectionPlanCompiler.cs
- PreloadedPackages.cs