Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 1305376 / 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; using System.Security.Authentication.ExtendedProtection; #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, string spn, ChannelBinding channelBindingToken) { 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.UTF8.GetBytes(userName)), false); } else { this.sessions.Remove(sessionCookie); // return new Authorization(Convert.ToBase64String(System.Text.Encoding.UTF8.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; using System.Security.Authentication.ExtendedProtection; #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, string spn, ChannelBinding channelBindingToken) { 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.UTF8.GetBytes(userName)), false); } else { this.sessions.Remove(sessionCookie); // return new Authorization(Convert.ToBase64String(System.Text.Encoding.UTF8.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
- XPathExpr.cs
- DiscoveryClient.cs
- ECDiffieHellmanPublicKey.cs
- DeploymentSectionCache.cs
- XpsException.cs
- ProcessHost.cs
- QilSortKey.cs
- InkSerializer.cs
- ModelPropertyDescriptor.cs
- HyperLinkStyle.cs
- WebSysDescriptionAttribute.cs
- PeerCredentialElement.cs
- StaticTextPointer.cs
- MeasurementDCInfo.cs
- NominalTypeEliminator.cs
- ItemMap.cs
- PresentationAppDomainManager.cs
- Accessible.cs
- IndexerNameAttribute.cs
- Substitution.cs
- LicenseException.cs
- XmlUtilWriter.cs
- WindowsButton.cs
- SqlTypeSystemProvider.cs
- Point.cs
- RTLAwareMessageBox.cs
- TypedDatasetGenerator.cs
- WebPartChrome.cs
- BevelBitmapEffect.cs
- ZoneIdentityPermission.cs
- ImageListStreamer.cs
- TextFormatterContext.cs
- StringSource.cs
- _AuthenticationState.cs
- BitmapScalingModeValidation.cs
- ToggleProviderWrapper.cs
- TableCellAutomationPeer.cs
- ActivityTypeDesigner.xaml.cs
- KeyboardDevice.cs
- ProfessionalColorTable.cs
- PopupControlService.cs
- SqlBulkCopyColumnMappingCollection.cs
- Odbc32.cs
- SystemIPInterfaceProperties.cs
- ToolBar.cs
- DtcInterfaces.cs
- HostedTransportConfigurationManager.cs
- HotCommands.cs
- RegularExpressionValidator.cs
- LongTypeConverter.cs
- Transform3D.cs
- BatchServiceHost.cs
- HMACSHA512.cs
- SimpleTextLine.cs
- HttpRequestTraceRecord.cs
- EntityWithChangeTrackerStrategy.cs
- IPipelineRuntime.cs
- NameValueSectionHandler.cs
- SettingsPropertyIsReadOnlyException.cs
- IChannel.cs
- SQLByte.cs
- SchemaEntity.cs
- LocalizationComments.cs
- ComplexType.cs
- TextUtf8RawTextWriter.cs
- QilStrConcat.cs
- MsmqHostedTransportConfiguration.cs
- DataSourceCacheDurationConverter.cs
- FileReservationCollection.cs
- CertificateManager.cs
- WpfMemberInvoker.cs
- CapabilitiesState.cs
- SqlFunctionAttribute.cs
- ObjectAssociationEndMapping.cs
- StringOutput.cs
- RootProfilePropertySettingsCollection.cs
- TimeEnumHelper.cs
- _FixedSizeReader.cs
- TypeHelpers.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- TypeForwardedFromAttribute.cs
- ColorTransformHelper.cs
- FileController.cs
- TriState.cs
- CFStream.cs
- _HeaderInfoTable.cs
- ProtocolElementCollection.cs
- WebSysDefaultValueAttribute.cs
- StrongNameMembershipCondition.cs
- Stack.cs
- ELinqQueryState.cs
- IndexerNameAttribute.cs
- CompModSwitches.cs
- StreamUpdate.cs
- DurationConverter.cs
- Config.cs
- FormViewDesigner.cs
- XmlProcessingInstruction.cs
- TemplateControl.cs
- FlowDecision.cs