Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 5 / 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
- PersonalizationAdministration.cs
- RtfNavigator.cs
- TabControlEvent.cs
- TheQuery.cs
- FixedSOMGroup.cs
- MdImport.cs
- CommandDevice.cs
- ControlPersister.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- XsltLoader.cs
- AdCreatedEventArgs.cs
- DurationConverter.cs
- FixedPage.cs
- ExpressionDumper.cs
- SqlServices.cs
- StylusEventArgs.cs
- StringInfo.cs
- SessionEndingEventArgs.cs
- MsmqReceiveParameters.cs
- DataGridCell.cs
- ExpressionSelection.cs
- CodeAttributeArgumentCollection.cs
- ChildDocumentBlock.cs
- XmlSchemaAppInfo.cs
- InnerItemCollectionView.cs
- DataRecordInternal.cs
- FigureParagraph.cs
- remotingproxy.cs
- Line.cs
- ProviderConnectionPoint.cs
- OleDbPermission.cs
- SHA384.cs
- UserPreferenceChangedEventArgs.cs
- SubMenuStyleCollection.cs
- MouseGestureConverter.cs
- XmlLanguageConverter.cs
- Separator.cs
- XmlSchemaSimpleType.cs
- CustomCredentialPolicy.cs
- TextContainer.cs
- TypeToArgumentTypeConverter.cs
- DefinitionBase.cs
- ResizeBehavior.cs
- Sorting.cs
- CurrentTimeZone.cs
- UnknownWrapper.cs
- HtmlInputFile.cs
- SerializationSectionGroup.cs
- externdll.cs
- AuthenticatedStream.cs
- TreeNodeEventArgs.cs
- NodeInfo.cs
- PointConverter.cs
- StylusEventArgs.cs
- WebServiceHandlerFactory.cs
- MouseGestureConverter.cs
- KeyedCollection.cs
- GridViewColumnCollectionChangedEventArgs.cs
- HtmlHistory.cs
- UnknownBitmapEncoder.cs
- TaiwanCalendar.cs
- InternalCompensate.cs
- XPathItem.cs
- Maps.cs
- SmtpNtlmAuthenticationModule.cs
- HttpPostLocalhostServerProtocol.cs
- RouteValueExpressionBuilder.cs
- Context.cs
- DataTemplateSelector.cs
- AffineTransform3D.cs
- XpsResourceDictionary.cs
- BindingSource.cs
- ContainerVisual.cs
- UnsignedPublishLicense.cs
- BinaryConverter.cs
- ContentTextAutomationPeer.cs
- SiteMapSection.cs
- ProxyWebPartConnectionCollection.cs
- LifetimeServices.cs
- HttpInputStream.cs
- FacetEnabledSchemaElement.cs
- RuntimeResourceSet.cs
- RemoteCryptoRsaServiceProvider.cs
- assertwrapper.cs
- ImageListStreamer.cs
- ScriptControlManager.cs
- OletxResourceManager.cs
- EntityDataSourceDataSelection.cs
- InstanceCompleteException.cs
- TextEditorCopyPaste.cs
- LoginDesigner.cs
- BaseCAMarshaler.cs
- BitmapMetadata.cs
- AffineTransform3D.cs
- AtomServiceDocumentSerializer.cs
- FormsAuthenticationCredentials.cs
- HttpCapabilitiesEvaluator.cs
- WmlFormAdapter.cs
- SectionVisual.cs
- WebPartEventArgs.cs