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
- CharacterBufferReference.cs
- DocumentSequence.cs
- RankException.cs
- FacetDescriptionElement.cs
- XmlSerializableServices.cs
- HtmlFormAdapter.cs
- EdmToObjectNamespaceMap.cs
- SpotLight.cs
- SqlDeflator.cs
- ProxyOperationRuntime.cs
- ConditionValidator.cs
- listviewsubitemcollectioneditor.cs
- ObjectNavigationPropertyMapping.cs
- XmlEntity.cs
- NameSpaceEvent.cs
- ChangeTracker.cs
- MsmqIntegrationChannelListener.cs
- FormatPage.cs
- IERequestCache.cs
- LogEntrySerializer.cs
- ToolZone.cs
- NonParentingControl.cs
- FrugalList.cs
- Stroke2.cs
- AttachedPropertyMethodSelector.cs
- DynamicValidatorEventArgs.cs
- UInt32.cs
- MenuRenderer.cs
- Renderer.cs
- Visual3D.cs
- Table.cs
- safex509handles.cs
- DetailsViewModeEventArgs.cs
- GridViewUpdateEventArgs.cs
- ManagementQuery.cs
- NativeMethods.cs
- PersistencePipeline.cs
- CustomError.cs
- KernelTypeValidation.cs
- TextEffect.cs
- XsltSettings.cs
- RegexCharClass.cs
- MD5CryptoServiceProvider.cs
- ArithmeticException.cs
- TypeGeneratedEventArgs.cs
- ErrorInfoXmlDocument.cs
- InputLangChangeRequestEvent.cs
- OneOfTypeConst.cs
- Atom10FeedFormatter.cs
- UserPreferenceChangedEventArgs.cs
- RegexCompiler.cs
- TextModifierScope.cs
- LocalizableResourceBuilder.cs
- PlaceHolder.cs
- GestureRecognitionResult.cs
- EmptyCollection.cs
- objectquery_tresulttype.cs
- SecurityTokenException.cs
- DesignerValidatorAdapter.cs
- IndicFontClient.cs
- WebPartDisplayModeCancelEventArgs.cs
- DeferredSelectedIndexReference.cs
- SafeCryptHandles.cs
- ZipFileInfo.cs
- IPipelineRuntime.cs
- ContentElement.cs
- SQLInt16Storage.cs
- MimeTypeAttribute.cs
- Rss20ItemFormatter.cs
- LookupBindingPropertiesAttribute.cs
- future.cs
- HandleCollector.cs
- SystemDiagnosticsSection.cs
- LazyInitializer.cs
- TrackingProfileDeserializationException.cs
- XmlConvert.cs
- ActivityTypeDesigner.xaml.cs
- TableItemStyle.cs
- WrappedIUnknown.cs
- UInt32Storage.cs
- ConditionCollection.cs
- InvokeBinder.cs
- EmptyStringExpandableObjectConverter.cs
- SqlDependency.cs
- ByteStream.cs
- HtmlTableCell.cs
- CustomLineCap.cs
- ProviderIncompatibleException.cs
- InstanceHandle.cs
- ResourceDictionaryCollection.cs
- Point.cs
- WebDescriptionAttribute.cs
- IndexedString.cs
- XmlEncodedRawTextWriter.cs
- DataControlCommands.cs
- ThreadExceptionDialog.cs
- LinkedResourceCollection.cs
- XmlDataLoader.cs
- Atom10FormatterFactory.cs
- LocalizabilityAttribute.cs