Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 2 / 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 } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- VBIdentifierDesigner.xaml.cs
- DataContractAttribute.cs
- SqlMethodCallConverter.cs
- BufferedStream.cs
- EllipseGeometry.cs
- Atom10FormatterFactory.cs
- NativeMethodsCLR.cs
- FactoryRecord.cs
- MenuItemStyle.cs
- WindowsSolidBrush.cs
- FrameworkTextComposition.cs
- HotSpotCollection.cs
- Condition.cs
- TextOnlyOutput.cs
- SuppressMessageAttribute.cs
- EncoderFallback.cs
- MissingFieldException.cs
- RectAnimationClockResource.cs
- ObjectDataSourceMethodEventArgs.cs
- NominalTypeEliminator.cs
- ComponentRenameEvent.cs
- WebBrowserContainer.cs
- DataGridViewAutoSizeModeEventArgs.cs
- ForeignKeyFactory.cs
- DependencyStoreSurrogate.cs
- FtpCachePolicyElement.cs
- SqlCachedBuffer.cs
- ValueProviderWrapper.cs
- ValidatorAttribute.cs
- PropertyGeneratedEventArgs.cs
- BoolExpression.cs
- ElementHost.cs
- DataColumnMapping.cs
- XmlChildNodes.cs
- Socket.cs
- FrameworkReadOnlyPropertyMetadata.cs
- DataBoundControlParameterTarget.cs
- PageThemeCodeDomTreeGenerator.cs
- PathFigureCollectionValueSerializer.cs
- FullTextLine.cs
- InputLanguageProfileNotifySink.cs
- SecurityCriticalDataForSet.cs
- ServiceNameElement.cs
- ImageList.cs
- NavigationEventArgs.cs
- FlowLayout.cs
- LifetimeServices.cs
- ZipIOCentralDirectoryFileHeader.cs
- SmtpNetworkElement.cs
- ThemeDirectoryCompiler.cs
- PropertyEmitterBase.cs
- DataGridViewCell.cs
- InternalDispatchObject.cs
- LookupNode.cs
- ConstrainedGroup.cs
- FixedDSBuilder.cs
- Source.cs
- ContextMenuAutomationPeer.cs
- MappingModelBuildProvider.cs
- PrintingPermission.cs
- CompilationLock.cs
- DataList.cs
- DocumentPage.cs
- UriSectionReader.cs
- PartitionResolver.cs
- CollectionExtensions.cs
- Column.cs
- FixedTextSelectionProcessor.cs
- InternalSafeNativeMethods.cs
- TextSelectionHighlightLayer.cs
- DataGridViewLinkCell.cs
- SettingsBindableAttribute.cs
- InheritedPropertyChangedEventArgs.cs
- RegistrySecurity.cs
- DataMemberConverter.cs
- HttpBindingExtension.cs
- StringHandle.cs
- CounterCreationDataCollection.cs
- SqlDataSourceConfigureSortForm.cs
- GridViewUpdatedEventArgs.cs
- CommandManager.cs
- XpsThumbnail.cs
- ConditionalAttribute.cs
- DataGridViewCellStyleEditor.cs
- Int32CollectionValueSerializer.cs
- BamlLocalizer.cs
- DES.cs
- WebPartDisplayMode.cs
- PropertyReferenceExtension.cs
- ServiceRoute.cs
- EventLogRecord.cs
- DefaultParameterValueAttribute.cs
- BitmapEffectDrawingContextWalker.cs
- SafeNativeMethods.cs
- SynthesizerStateChangedEventArgs.cs
- RtfToXamlLexer.cs
- SafeNativeMethods.cs
- QilParameter.cs
- DataGridViewCellEventArgs.cs
- DesignerVerbToolStripMenuItem.cs