Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 1 / SmtpLoginAuthenticationModule.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Mail { using System; using System.Collections; using System.IO; using System.Net; using System.Security.Permissions; #if MAKE_MAILCLIENT_PUBLIC internal #else internal #endif class SmtpLoginAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpLoginAuthenticationModule() { } #region ISmtpAuthenticationModule Members // Security this method will access NetworkCredential properties that demand UnmanagedCode and Environment Permission [EnvironmentPermission(SecurityAction.Assert, Unrestricted=true)] [SecurityPermission(SecurityAction.Assert, Flags=SecurityPermissionFlag.UnmanagedCode)] public Authorization Authenticate(string challenge, NetworkCredential credential, object sessionCookie) { if(Logging.On)Logging.Enter(Logging.Web, this, "Authenticate", null); try { lock (this.sessions) { NetworkCredential cachedCredential = sessions[sessionCookie] as NetworkCredential; if (cachedCredential == null) { if (credential == null || credential is SystemNetworkCredential) { return null; } sessions[sessionCookie] = credential; string userName = credential.UserName; string domain = credential.Domain; if (domain!=null && domain.Length > 0) { userName = domain + "\\" + userName; } // return new Authorization(Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(userName)), false); } else { this.sessions.Remove(sessionCookie); // return new Authorization(Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(cachedCredential.Password)), true); } } } finally { if(Logging.On)Logging.Exit(Logging.Web, this, "Authenticate", null); } } public string AuthenticationType { get { return "login"; } } public void CloseContext(object sessionCookie) { // This is a no-op since the context is not // kept open by this module beyond auth completion. } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Mail { using System; using System.Collections; using System.IO; using System.Net; using System.Security.Permissions; #if MAKE_MAILCLIENT_PUBLIC internal #else internal #endif class SmtpLoginAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpLoginAuthenticationModule() { } #region ISmtpAuthenticationModule Members // Security this method will access NetworkCredential properties that demand UnmanagedCode and Environment Permission [EnvironmentPermission(SecurityAction.Assert, Unrestricted=true)] [SecurityPermission(SecurityAction.Assert, Flags=SecurityPermissionFlag.UnmanagedCode)] public Authorization Authenticate(string challenge, NetworkCredential credential, object sessionCookie) { if(Logging.On)Logging.Enter(Logging.Web, this, "Authenticate", null); try { lock (this.sessions) { NetworkCredential cachedCredential = sessions[sessionCookie] as NetworkCredential; if (cachedCredential == null) { if (credential == null || credential is SystemNetworkCredential) { return null; } sessions[sessionCookie] = credential; string userName = credential.UserName; string domain = credential.Domain; if (domain!=null && domain.Length > 0) { userName = domain + "\\" + userName; } // return new Authorization(Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(userName)), false); } else { this.sessions.Remove(sessionCookie); // return new Authorization(Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(cachedCredential.Password)), true); } } } finally { if(Logging.On)Logging.Exit(Logging.Web, this, "Authenticate", null); } } public string AuthenticationType { get { return "login"; } } public void CloseContext(object sessionCookie) { // This is a no-op since the context is not // kept open by this module beyond auth completion. } #endregion } } // 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
- FlowNode.cs
- XmlSchemaAny.cs
- WindowsFont.cs
- WorkerRequest.cs
- WebPartDisplayModeEventArgs.cs
- HttpModule.cs
- WebConvert.cs
- XmlException.cs
- __Filters.cs
- CultureInfoConverter.cs
- LocalizationComments.cs
- _HeaderInfo.cs
- GridView.cs
- BinaryMessageFormatter.cs
- XamlSerializerUtil.cs
- XPathEmptyIterator.cs
- SqlNodeAnnotation.cs
- IfJoinedCondition.cs
- EntitySqlException.cs
- RotationValidation.cs
- LongTypeConverter.cs
- DocumentPageHost.cs
- SynchronousReceiveElement.cs
- SchemaTableColumn.cs
- EntityCodeGenerator.cs
- XmlILIndex.cs
- MgmtConfigurationRecord.cs
- BrushValueSerializer.cs
- RegisteredArrayDeclaration.cs
- CLSCompliantAttribute.cs
- EntityUtil.cs
- DataSourceSerializationException.cs
- GetLastErrorDetailsRequest.cs
- PeerServiceMessageContracts.cs
- HtmlInputPassword.cs
- ThreadSafeList.cs
- PolicyStatement.cs
- ApplicationInterop.cs
- FixedLineResult.cs
- XmlUrlResolver.cs
- Rect3D.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- WorkflowMessageEventArgs.cs
- AvTraceFormat.cs
- SafeEventLogWriteHandle.cs
- FileVersionInfo.cs
- WebPartDisplayModeCollection.cs
- XmlDeclaration.cs
- GCHandleCookieTable.cs
- DataControlLinkButton.cs
- XsdBuilder.cs
- ServiceNameCollection.cs
- Triangle.cs
- TrustLevelCollection.cs
- WebBrowser.cs
- UmAlQuraCalendar.cs
- DataGridAutoFormatDialog.cs
- ProjectedSlot.cs
- SourceFileInfo.cs
- CustomErrorsSectionWrapper.cs
- StreamWithDictionary.cs
- PropertyPathConverter.cs
- TextBoxAutomationPeer.cs
- LocalsItemDescription.cs
- GridViewColumnHeaderAutomationPeer.cs
- ConfigXmlText.cs
- SqlInternalConnectionTds.cs
- CompiledIdentityConstraint.cs
- DependencyObject.cs
- X509SecurityToken.cs
- Setter.cs
- StreamBodyWriter.cs
- Property.cs
- HuffModule.cs
- WebPartMenu.cs
- DataObjectMethodAttribute.cs
- OptimizerPatterns.cs
- WindowsFormsHostAutomationPeer.cs
- XmlQueryTypeFactory.cs
- Pts.cs
- PropertyDescriptors.cs
- XmlTextReader.cs
- Deflater.cs
- CachingHintValidation.cs
- DBDataPermissionAttribute.cs
- ToolStripStatusLabel.cs
- WindowsSpinner.cs
- CompositionAdorner.cs
- ScalarRestriction.cs
- IntSecurity.cs
- UIElementParaClient.cs
- EventMappingSettings.cs
- NonParentingControl.cs
- FixedDocumentPaginator.cs
- WindowsHyperlink.cs
- CompoundFileReference.cs
- MouseCaptureWithinProperty.cs
- EmptyCollection.cs
- ToolStripHighContrastRenderer.cs
- PropertyIDSet.cs