Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 1305376 / 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; using System.Security.Authentication.ExtendedProtection; #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, string spn, ChannelBinding channelBindingToken) { 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.UTF8.GetBytes(userName)), false); } else { this.sessions.Remove(sessionCookie); // return new Authorization(Convert.ToBase64String(System.Text.Encoding.UTF8.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; using System.Security.Authentication.ExtendedProtection; #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, string spn, ChannelBinding channelBindingToken) { 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.UTF8.GetBytes(userName)), false); } else { this.sessions.Remove(sessionCookie); // return new Authorization(Convert.ToBase64String(System.Text.Encoding.UTF8.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
- DesignerCategoryAttribute.cs
- MonthCalendarDesigner.cs
- DictionaryTraceRecord.cs
- TextSelectionHighlightLayer.cs
- SymLanguageVendor.cs
- ToolBarOverflowPanel.cs
- WindowsAltTab.cs
- DataControlFieldHeaderCell.cs
- XmlCharCheckingWriter.cs
- RuleElement.cs
- ExpandCollapsePattern.cs
- TrackBarRenderer.cs
- TemplateColumn.cs
- BitVector32.cs
- InvalidWMPVersionException.cs
- CompilerScopeManager.cs
- ReadOnlyTernaryTree.cs
- ScrollViewerAutomationPeer.cs
- XPathNodeInfoAtom.cs
- RSAPKCS1SignatureFormatter.cs
- NumericUpDownAcceleration.cs
- SpecularMaterial.cs
- DateBoldEvent.cs
- ResourceDescriptionAttribute.cs
- PassportAuthentication.cs
- TextDecorationCollection.cs
- TemplatedControlDesigner.cs
- IdentityNotMappedException.cs
- EvidenceBase.cs
- ErrorRuntimeConfig.cs
- DataErrorValidationRule.cs
- ObjectParameter.cs
- CacheSection.cs
- Geometry.cs
- DynamicFilterExpression.cs
- TypeForwardedToAttribute.cs
- FormDocumentDesigner.cs
- DrawingContextDrawingContextWalker.cs
- ListBindingConverter.cs
- SR.cs
- Automation.cs
- ICspAsymmetricAlgorithm.cs
- WindowsSecurityTokenAuthenticator.cs
- CompensationExtension.cs
- TextReader.cs
- SchemaEntity.cs
- ErrorFormatterPage.cs
- ContextToken.cs
- RequestContext.cs
- ConstraintManager.cs
- ViewBox.cs
- NameTable.cs
- LicenseManager.cs
- __Error.cs
- MenuItem.cs
- ProgressChangedEventArgs.cs
- Model3D.cs
- __ComObject.cs
- DataGridViewCellStyle.cs
- DataTableTypeConverter.cs
- DataExpression.cs
- ContainerAction.cs
- TextTreeInsertElementUndoUnit.cs
- PageCodeDomTreeGenerator.cs
- ExclusiveNamedPipeTransportManager.cs
- WizardPanel.cs
- RequestQueue.cs
- _StreamFramer.cs
- BinaryReader.cs
- ObfuscationAttribute.cs
- ColorKeyFrameCollection.cs
- GraphicsState.cs
- PhysicalAddress.cs
- ExpandCollapsePattern.cs
- Iis7Helper.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SqlXml.cs
- FigureParaClient.cs
- ScalarOps.cs
- AttachmentService.cs
- PeerCollaboration.cs
- XamlWriterExtensions.cs
- XmlNullResolver.cs
- Transform3DGroup.cs
- PrtTicket_Public.cs
- DrawingImage.cs
- PartialTrustVisibleAssembly.cs
- SecurityToken.cs
- ContextDataSourceContextData.cs
- SynchronizationContext.cs
- RelationshipConstraintValidator.cs
- CustomAttributeFormatException.cs
- ExtensibleClassFactory.cs
- EventLogTraceListener.cs
- PropertyChangeTracker.cs
- SmtpReplyReader.cs
- BStrWrapper.cs
- ComponentDispatcher.cs
- ExtensionSimplifierMarkupObject.cs
- RoutedUICommand.cs