Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HyperLinkColumn.cs
- HttpRequestTraceRecord.cs
- ResourceExpressionEditorSheet.cs
- unitconverter.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- ExeContext.cs
- InboundActivityHelper.cs
- RequestCacheValidator.cs
- MatrixConverter.cs
- TimeStampChecker.cs
- AmbiguousMatchException.cs
- AssertSection.cs
- LogicalTreeHelper.cs
- MetadataArtifactLoaderCompositeFile.cs
- CommonObjectSecurity.cs
- DoubleAnimationClockResource.cs
- StreamWithDictionary.cs
- SecurityDescriptor.cs
- TextElementCollectionHelper.cs
- SolidBrush.cs
- ContextItem.cs
- Transform3DGroup.cs
- SupportedAddressingMode.cs
- StatusBar.cs
- RecognizerInfo.cs
- SimpleType.cs
- IdnElement.cs
- RolePrincipal.cs
- StrongNameKeyPair.cs
- PolicyException.cs
- KeyNotFoundException.cs
- StorageConditionPropertyMapping.cs
- SystemDiagnosticsSection.cs
- ToolboxItemCollection.cs
- XmlWrappingReader.cs
- ToolboxComponentsCreatedEventArgs.cs
- NCryptSafeHandles.cs
- MarkupExtensionParser.cs
- FlowLayout.cs
- SystemColorTracker.cs
- StateFinalizationDesigner.cs
- DesignerActionTextItem.cs
- mediaclock.cs
- SslStream.cs
- BamlMapTable.cs
- RightsManagementEncryptionTransform.cs
- DataSvcMapFileSerializer.cs
- ImageBrush.cs
- RelationshipManager.cs
- DataGridItemCollection.cs
- ContentPropertyAttribute.cs
- DateTimePicker.cs
- ObjectQueryExecutionPlan.cs
- ComPlusServiceLoader.cs
- DependencyObjectValidator.cs
- DataListItem.cs
- ProcessExitedException.cs
- ThemeableAttribute.cs
- IsolatedStoragePermission.cs
- CursorInteropHelper.cs
- ScrollData.cs
- Config.cs
- WindowAutomationPeer.cs
- XamlSerializerUtil.cs
- TrailingSpaceComparer.cs
- WmlTextBoxAdapter.cs
- PeerNameRecordCollection.cs
- baseaxisquery.cs
- WindowsEditBox.cs
- PathStreamGeometryContext.cs
- ViewLoader.cs
- IssuedTokenClientCredential.cs
- XmlFormatExtensionAttribute.cs
- XmlStreamNodeWriter.cs
- InvalidBodyAccessException.cs
- WebBrowserBase.cs
- Pool.cs
- XmlSchemaSearchPattern.cs
- ServerValidateEventArgs.cs
- XmlQueryOutput.cs
- PowerModeChangedEventArgs.cs
- PartitionResolver.cs
- SettingsBindableAttribute.cs
- HtmlInputText.cs
- WebMessageEncoderFactory.cs
- FocusTracker.cs
- BehaviorEditorPart.cs
- SymLanguageVendor.cs
- IncrementalCompileAnalyzer.cs
- EdmTypeAttribute.cs
- EventProviderWriter.cs
- WorkflowService.cs
- GPRECTF.cs
- DataGridViewButtonColumn.cs
- ViewEventArgs.cs
- FormsAuthenticationTicket.cs
- DataBindingHandlerAttribute.cs
- TemplateEditingService.cs
- ReadWriteObjectLock.cs
- NamespaceEmitter.cs