Code:
/ FX-1434 / FX-1434 / 1.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
- Config.cs
- RootDesignerSerializerAttribute.cs
- UmAlQuraCalendar.cs
- EntityKeyElement.cs
- ThreadLocal.cs
- XmlDownloadManager.cs
- MenuItemBindingCollection.cs
- SpeechSynthesizer.cs
- SqlLiftIndependentRowExpressions.cs
- ArrangedElement.cs
- ConfigXmlCDataSection.cs
- ImageUrlEditor.cs
- StickyNoteAnnotations.cs
- BrowserDefinitionCollection.cs
- MenuItemBinding.cs
- CodeStatement.cs
- _NestedMultipleAsyncResult.cs
- SettingsSection.cs
- HostingPreferredMapPath.cs
- AlternationConverter.cs
- BoundsDrawingContextWalker.cs
- Helpers.cs
- DbFunctionCommandTree.cs
- PointHitTestResult.cs
- InputProcessorProfilesLoader.cs
- CLSCompliantAttribute.cs
- ResolvePPIDRequest.cs
- ValueExpressions.cs
- CustomPopupPlacement.cs
- SqlClientWrapperSmiStreamChars.cs
- CollectionViewGroupRoot.cs
- TableStyle.cs
- CodeIterationStatement.cs
- ConstraintEnumerator.cs
- RootBrowserWindowProxy.cs
- SqlDataRecord.cs
- FormatSettings.cs
- XsltLoader.cs
- XPathNode.cs
- TaskFileService.cs
- PageSettings.cs
- NamespaceDisplay.xaml.cs
- CallTemplateAction.cs
- BridgeDataReader.cs
- KnownBoxes.cs
- SplitterPanel.cs
- LoginNameDesigner.cs
- TableCellCollection.cs
- EndPoint.cs
- UnsafeNativeMethods.cs
- ContextProperty.cs
- EntityContainerEntitySetDefiningQuery.cs
- ExceptionUtility.cs
- SafeFindHandle.cs
- StreamInfo.cs
- WebHeaderCollection.cs
- LoadGrammarCompletedEventArgs.cs
- EntityContainerEntitySetDefiningQuery.cs
- EpmSourcePathSegment.cs
- TransformCryptoHandle.cs
- ProfessionalColorTable.cs
- MetaData.cs
- SafeArrayTypeMismatchException.cs
- MetadataPropertyAttribute.cs
- RemotingSurrogateSelector.cs
- DataGridViewCellConverter.cs
- HttpWebRequest.cs
- StylusCollection.cs
- OutputCacheSettingsSection.cs
- ComponentChangedEvent.cs
- OdbcParameterCollection.cs
- IImplicitResourceProvider.cs
- RelationshipFixer.cs
- TextBoxAutoCompleteSourceConverter.cs
- XmlRawWriter.cs
- CreateUserWizard.cs
- EncoderBestFitFallback.cs
- EntityType.cs
- TextParagraphProperties.cs
- ThicknessConverter.cs
- RegexMatch.cs
- ComponentCommands.cs
- ResourceContainer.cs
- MD5CryptoServiceProvider.cs
- TearOffProxy.cs
- Documentation.cs
- Tuple.cs
- ReliableSessionBindingElement.cs
- UriTemplateTrieLocation.cs
- PersonalizationStateInfoCollection.cs
- RegistryPermission.cs
- PackagePart.cs
- RetriableClipboard.cs
- HelloMessageApril2005.cs
- CompiledQueryCacheEntry.cs
- ListItemCollection.cs
- DoubleKeyFrameCollection.cs
- LineGeometry.cs
- Gdiplus.cs
- StreamingContext.cs