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
- SqlException.cs
- SoapParser.cs
- PreloadedPackages.cs
- VirtualDirectoryMappingCollection.cs
- SignedXml.cs
- MenuItemStyleCollection.cs
- AssociationTypeEmitter.cs
- WebControlAdapter.cs
- ThreadStaticAttribute.cs
- BoundColumn.cs
- Transform.cs
- FontUnitConverter.cs
- BrowsableAttribute.cs
- DeferredElementTreeState.cs
- SafeLibraryHandle.cs
- SmiEventSink_DeferedProcessing.cs
- UrlAuthorizationModule.cs
- BuildResult.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- PersonalizationStateQuery.cs
- CompiledXpathExpr.cs
- WorkflowFormatterBehavior.cs
- RowUpdatedEventArgs.cs
- PeerName.cs
- DebugView.cs
- DBNull.cs
- StringFormat.cs
- ListViewGroup.cs
- Config.cs
- SqlReferenceCollection.cs
- PathTooLongException.cs
- DataRowExtensions.cs
- MD5Cng.cs
- ListBindingConverter.cs
- glyphs.cs
- FocusChangedEventArgs.cs
- KeyFrames.cs
- SetStateDesigner.cs
- MediaContextNotificationWindow.cs
- AnimatedTypeHelpers.cs
- GrammarBuilderDictation.cs
- ListCommandEventArgs.cs
- EventProvider.cs
- ToolStripDropDownClosingEventArgs.cs
- StrokeNodeOperations.cs
- PrintPreviewDialog.cs
- CurrencyWrapper.cs
- __Error.cs
- DesignerTextViewAdapter.cs
- IntranetCredentialPolicy.cs
- PageRequestManager.cs
- EventDescriptor.cs
- SqlAggregateChecker.cs
- RemoteWebConfigurationHostServer.cs
- HashJoinQueryOperatorEnumerator.cs
- Tag.cs
- Paragraph.cs
- AutomationPatternInfo.cs
- MetadataArtifactLoaderResource.cs
- Point3DAnimation.cs
- OdbcUtils.cs
- MethodBuilder.cs
- OleDbStruct.cs
- TextServicesContext.cs
- Random.cs
- StrokeCollectionConverter.cs
- EmissiveMaterial.cs
- DataGridColumn.cs
- ToolStripItemImageRenderEventArgs.cs
- PropertyGrid.cs
- KeyEventArgs.cs
- ChangeTracker.cs
- LambdaCompiler.Binary.cs
- Odbc32.cs
- SqlCachedBuffer.cs
- ValidationSummary.cs
- XmlSignificantWhitespace.cs
- Int32CollectionValueSerializer.cs
- InfoCardProofToken.cs
- DoubleLinkList.cs
- _ConnectStream.cs
- ToolStripItemTextRenderEventArgs.cs
- NamedPipeTransportSecurityElement.cs
- BooleanFunctions.cs
- SimpleType.cs
- FreezableCollection.cs
- Repeater.cs
- ZipIOExtraFieldElement.cs
- Button.cs
- ActivityDesignerLayoutSerializers.cs
- StringBuilder.cs
- InternalControlCollection.cs
- DrawingAttributeSerializer.cs
- DataGridViewDataConnection.cs
- RIPEMD160.cs
- ControlParameter.cs
- FontCacheUtil.cs
- SmtpReplyReader.cs
- Geometry3D.cs
- ApplicationSecurityInfo.cs