Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 5 / 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
- Cursor.cs
- LineGeometry.cs
- ConfigurationStrings.cs
- ObjectViewFactory.cs
- RoleService.cs
- OLEDB_Enum.cs
- FrameworkPropertyMetadata.cs
- DatePickerDateValidationErrorEventArgs.cs
- PartialTrustVisibleAssembly.cs
- RelAssertionDirectKeyIdentifierClause.cs
- NetworkInterface.cs
- FormatException.cs
- OutputCacheProfile.cs
- FormViewInsertedEventArgs.cs
- XmlCharacterData.cs
- NestedContainer.cs
- ThreadAbortException.cs
- XmlSchemaParticle.cs
- MultiBinding.cs
- ProcessHostFactoryHelper.cs
- DataContractJsonSerializerOperationFormatter.cs
- NetworkStream.cs
- DataRelationCollection.cs
- SafePointer.cs
- ForeignKeyConstraint.cs
- StringCollectionMarkupSerializer.cs
- Touch.cs
- Main.cs
- ADMembershipProvider.cs
- GridProviderWrapper.cs
- Function.cs
- OutputCacheSettingsSection.cs
- AttributeQuery.cs
- HttpPostProtocolReflector.cs
- PriorityItem.cs
- NeedSkipTokenVisitor.cs
- DocumentReference.cs
- SapiGrammar.cs
- unsafenativemethodstextservices.cs
- WCFServiceClientProxyGenerator.cs
- ColumnMap.cs
- StandardRuntimeEnumValidatorAttribute.cs
- ScrollItemProviderWrapper.cs
- MenuItemBindingCollection.cs
- HebrewCalendar.cs
- KerberosTicketHashIdentifierClause.cs
- MediaTimeline.cs
- Activity.cs
- Statements.cs
- HtmlControlDesigner.cs
- SerialPinChanges.cs
- MachineKeySection.cs
- EncodingDataItem.cs
- NoneExcludedImageIndexConverter.cs
- ImportRequest.cs
- ThaiBuddhistCalendar.cs
- DataObjectAttribute.cs
- SurrogateEncoder.cs
- SerializerWriterEventHandlers.cs
- ReadOnlyDataSourceView.cs
- XmlReflectionImporter.cs
- BamlResourceContent.cs
- HttpCachePolicy.cs
- HttpApplication.cs
- TdsParserStateObject.cs
- QueryParameter.cs
- EntityContainerAssociationSet.cs
- MachineKeyValidationConverter.cs
- VisualStyleRenderer.cs
- X509CertificateInitiatorClientCredential.cs
- OleDbPermission.cs
- XsdCachingReader.cs
- SR.cs
- SqlMethodCallConverter.cs
- SafeRightsManagementEnvironmentHandle.cs
- XPathSelfQuery.cs
- UriSection.cs
- DesignerActionTextItem.cs
- Profiler.cs
- Sorting.cs
- BuildProvidersCompiler.cs
- ListViewHitTestInfo.cs
- ViewStateModeByIdAttribute.cs
- SQLSingle.cs
- StringPropertyBuilder.cs
- _emptywebproxy.cs
- Int64.cs
- TrackBarRenderer.cs
- IPAddress.cs
- ObjectDataSourceSelectingEventArgs.cs
- MembershipAdapter.cs
- PasswordTextNavigator.cs
- ActivationArguments.cs
- X509ChainElement.cs
- ArrayEditor.cs
- Stylesheet.cs
- SystemIcons.cs
- BitmapImage.cs
- SqlInfoMessageEvent.cs
- ObjectDataSourceDesigner.cs