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
- WebSysDefaultValueAttribute.cs
- OdbcConnectionPoolProviderInfo.cs
- SafeThreadHandle.cs
- ExternalException.cs
- MasterPageParser.cs
- Cursor.cs
- EntitySqlQueryCacheKey.cs
- InvokeBinder.cs
- SqlRowUpdatingEvent.cs
- InstanceStoreQueryResult.cs
- TextOptionsInternal.cs
- Focus.cs
- ContentValidator.cs
- FontCacheUtil.cs
- BuildProvidersCompiler.cs
- SqlCommandSet.cs
- PopupEventArgs.cs
- StreamUpgradeInitiator.cs
- WebColorConverter.cs
- HttpCookiesSection.cs
- WebPartsPersonalizationAuthorization.cs
- ContentPresenter.cs
- sqlpipe.cs
- CompositeControl.cs
- ServiceModelEnumValidator.cs
- DataView.cs
- CustomAttributeSerializer.cs
- ProcessStartInfo.cs
- RootBrowserWindowProxy.cs
- CompilerInfo.cs
- PolyQuadraticBezierSegment.cs
- LoadGrammarCompletedEventArgs.cs
- PopupControlService.cs
- QilParameter.cs
- HttpApplicationFactory.cs
- LocatorManager.cs
- GACIdentityPermission.cs
- SocketElement.cs
- XmlDocumentFragment.cs
- MdiWindowListStrip.cs
- NativeRecognizer.cs
- DrawingCollection.cs
- XPathSelectionIterator.cs
- NamespaceEmitter.cs
- CodeDOMUtility.cs
- MessageHeaderDescription.cs
- GlobalizationSection.cs
- Annotation.cs
- DataGridViewColumnCollectionDialog.cs
- DataGridViewDataConnection.cs
- HtmlInputText.cs
- KnownTypesProvider.cs
- WebBaseEventKeyComparer.cs
- SoapExtensionStream.cs
- XmlNodeReader.cs
- DataControlField.cs
- MenuEventArgs.cs
- AggregateException.cs
- TextElementAutomationPeer.cs
- CollectionBase.cs
- BezierSegment.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- storepermission.cs
- printdlgexmarshaler.cs
- JournalEntryListConverter.cs
- __FastResourceComparer.cs
- IApplicationTrustManager.cs
- InfiniteIntConverter.cs
- EFAssociationProvider.cs
- PanningMessageFilter.cs
- MobileComponentEditorPage.cs
- SinglePageViewer.cs
- InstanceStore.cs
- ImageMapEventArgs.cs
- RectangleConverter.cs
- ParagraphVisual.cs
- MediaTimeline.cs
- XPathAxisIterator.cs
- ObjectParameterCollection.cs
- WebPartConnectionsConnectVerb.cs
- ImportDesigner.xaml.cs
- Filter.cs
- ContainerUIElement3D.cs
- EncryptedData.cs
- BitmapDownload.cs
- ConsumerConnectionPoint.cs
- ExecutionEngineException.cs
- DataList.cs
- IntegerFacetDescriptionElement.cs
- QuadraticBezierSegment.cs
- BooleanFacetDescriptionElement.cs
- MembershipPasswordException.cs
- FixedElement.cs
- XmlTextAttribute.cs
- TdsParserStaticMethods.cs
- ConfigUtil.cs
- AddInActivator.cs
- SwitchLevelAttribute.cs
- CatchBlock.cs
- Camera.cs