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
- TablePatternIdentifiers.cs
- GenericWebPart.cs
- Rules.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- WebBrowsableAttribute.cs
- ObjectContextServiceProvider.cs
- MediaTimeline.cs
- CounterSample.cs
- XmlHelper.cs
- ZipIOExtraFieldZip64Element.cs
- Splitter.cs
- UndoManager.cs
- UICuesEvent.cs
- HostSecurityManager.cs
- ReadOnlyDataSource.cs
- StreamInfo.cs
- Decimal.cs
- CanonicalXml.cs
- EnterpriseServicesHelper.cs
- DataTableClearEvent.cs
- LinqDataSourceUpdateEventArgs.cs
- Matrix3D.cs
- QueryOutputWriter.cs
- XPathMultyIterator.cs
- Figure.cs
- Int32RectConverter.cs
- BindingList.cs
- BindingSourceDesigner.cs
- ConnectorEditor.cs
- Renderer.cs
- PathFigureCollectionConverter.cs
- OneOf.cs
- WsiProfilesElement.cs
- ClientOptions.cs
- Decimal.cs
- COM2Properties.cs
- CacheSection.cs
- SynchronizedInputAdaptor.cs
- ListMarkerSourceInfo.cs
- ScrollItemProviderWrapper.cs
- DynamicField.cs
- CopyAttributesAction.cs
- Cursor.cs
- KnownTypeAttribute.cs
- ProxyFragment.cs
- validation.cs
- Floater.cs
- PostBackOptions.cs
- CodeEntryPointMethod.cs
- WpfKnownMemberInvoker.cs
- GrammarBuilderDictation.cs
- Help.cs
- DataControlFieldCell.cs
- Trustee.cs
- XmlDataSourceView.cs
- WebPartConnectionsDisconnectVerb.cs
- ObjectConverter.cs
- DefaultIfEmptyQueryOperator.cs
- PrivilegeNotHeldException.cs
- DataSourceCacheDurationConverter.cs
- BatchParser.cs
- DESCryptoServiceProvider.cs
- XamlPointCollectionSerializer.cs
- CharacterMetricsDictionary.cs
- ImageCreator.cs
- ConfigurationStrings.cs
- BigInt.cs
- IntSecurity.cs
- DynamicResourceExtension.cs
- DefaultPropertyAttribute.cs
- PropVariant.cs
- SvcMapFile.cs
- SecurityTokenSpecification.cs
- ContextDataSourceView.cs
- ValidationSummary.cs
- BigInt.cs
- StructuredTypeInfo.cs
- Privilege.cs
- Rotation3DAnimationBase.cs
- SrgsSemanticInterpretationTag.cs
- RequiredAttributeAttribute.cs
- HtmlTable.cs
- GridProviderWrapper.cs
- ServiceTimeoutsElement.cs
- MsmqIntegrationChannelFactory.cs
- ObjectMemberMapping.cs
- DNS.cs
- DemultiplexingClientMessageFormatter.cs
- IntegrationExceptionEventArgs.cs
- NotImplementedException.cs
- XmlNamespaceDeclarationsAttribute.cs
- UniqueConstraint.cs
- ChangeConflicts.cs
- FixUp.cs
- FixedSOMTableCell.cs
- PartialList.cs
- Publisher.cs
- PopOutPanel.cs
- AudioFormatConverter.cs
- ObjectManager.cs