Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 2 / 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 } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FilteredXmlReader.cs
- MetadataItemSerializer.cs
- XmlSchema.cs
- ComboBox.cs
- Table.cs
- ImageMapEventArgs.cs
- DataGridItemCollection.cs
- TableLayoutStyleCollection.cs
- WindowsNonControl.cs
- DataObject.cs
- ContentElement.cs
- StrokeFIndices.cs
- CustomCategoryAttribute.cs
- Encoding.cs
- PngBitmapEncoder.cs
- PropertyGridView.cs
- ClientRoleProvider.cs
- ConnectionPoint.cs
- DoubleConverter.cs
- ADConnectionHelper.cs
- FilterEventArgs.cs
- XmlNodeChangedEventArgs.cs
- GridView.cs
- Configuration.cs
- CollectionType.cs
- State.cs
- ExpressionConverter.cs
- TypeSemantics.cs
- ReadOnlyDataSource.cs
- MsmqChannelFactory.cs
- UnorderedHashRepartitionStream.cs
- WebBrowserEvent.cs
- HwndKeyboardInputProvider.cs
- NativeMethods.cs
- DelegateArgument.cs
- UIElementHelper.cs
- QilList.cs
- SchemaTypeEmitter.cs
- ColumnBinding.cs
- ComponentEvent.cs
- CodeTypeParameterCollection.cs
- FormsAuthenticationTicket.cs
- GridViewRowCollection.cs
- XPathCompileException.cs
- ValueTypeFieldReference.cs
- SqlAliaser.cs
- _RequestCacheProtocol.cs
- _SSPIWrapper.cs
- NoClickablePointException.cs
- EntitySetBaseCollection.cs
- AlternateView.cs
- BuildProviderUtils.cs
- SharedMemory.cs
- _Semaphore.cs
- SourceChangedEventArgs.cs
- String.cs
- XmlIlVisitor.cs
- shaperfactoryquerycacheentry.cs
- UpdateRecord.cs
- DataGridCell.cs
- DataRow.cs
- MissingManifestResourceException.cs
- DateTimeSerializationSection.cs
- TabItemWrapperAutomationPeer.cs
- QueryCursorEventArgs.cs
- Pen.cs
- _IPv4Address.cs
- XmlSchemaSimpleType.cs
- AspNetSynchronizationContext.cs
- ElementNotAvailableException.cs
- ErrorStyle.cs
- DataProviderNameConverter.cs
- FirstMatchCodeGroup.cs
- ScalarType.cs
- DefaultClaimSet.cs
- RepeatBehavior.cs
- ProfileService.cs
- RecordBuilder.cs
- DesignerInterfaces.cs
- MouseEventArgs.cs
- HelpKeywordAttribute.cs
- HeaderLabel.cs
- DirectionalLight.cs
- OdbcDataAdapter.cs
- AuthenticatedStream.cs
- SetterBaseCollection.cs
- ColorIndependentAnimationStorage.cs
- XamlWriter.cs
- ContractMethodInfo.cs
- ScriptResourceAttribute.cs
- HostSecurityManager.cs
- HtmlCommandAdapter.cs
- DataGridViewTopRowAccessibleObject.cs
- QuaternionAnimationBase.cs
- MimeFormImporter.cs
- CompositeDataBoundControl.cs
- UICuesEvent.cs
- ProfilePropertySettingsCollection.cs
- LocationSectionRecord.cs
- DocumentAutomationPeer.cs