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
- RichTextBox.cs
- AuthorizationContext.cs
- CacheManager.cs
- Contracts.cs
- PropertyDescriptorCollection.cs
- XmlDesigner.cs
- FileLevelControlBuilderAttribute.cs
- RegistrySecurity.cs
- EntityDataSourceValidationException.cs
- WpfXamlLoader.cs
- InfiniteTimeSpanConverter.cs
- MembershipUser.cs
- FrameworkContentElementAutomationPeer.cs
- StreamUpgradeProvider.cs
- TypeDescriptionProvider.cs
- XmlDataSourceView.cs
- PersonalizationDictionary.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- NotifyIcon.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- PkcsMisc.cs
- ReflectionServiceProvider.cs
- GraphicsState.cs
- DataGridTextBoxColumn.cs
- XmlAttributeCollection.cs
- SoapDocumentMethodAttribute.cs
- BackStopAuthenticationModule.cs
- CodeSnippetTypeMember.cs
- EventLogPermissionEntry.cs
- PropertyChangingEventArgs.cs
- JavaScriptObjectDeserializer.cs
- HScrollBar.cs
- WebPartActionVerb.cs
- DefaultValueTypeConverter.cs
- EffectiveValueEntry.cs
- ProfileManager.cs
- AccessDataSource.cs
- PageContentCollection.cs
- ListViewItem.cs
- WindowsContainer.cs
- WorkflowElementDialog.cs
- MetaModel.cs
- AudienceUriMode.cs
- ImageSource.cs
- ConditionalAttribute.cs
- ConstraintStruct.cs
- LateBoundChannelParameterCollection.cs
- XmlNodeComparer.cs
- StatusStrip.cs
- AuthenticationModuleElement.cs
- X509KeyIdentifierClauseType.cs
- DefaultWorkflowTransactionService.cs
- RewritingValidator.cs
- ProxyFragment.cs
- EmissiveMaterial.cs
- AssemblyBuilder.cs
- SapiRecognizer.cs
- RegexReplacement.cs
- FormsAuthenticationModule.cs
- LinqExpressionNormalizer.cs
- XamlParser.cs
- RequiredFieldValidator.cs
- StringSorter.cs
- StringSorter.cs
- Environment.cs
- Size3DValueSerializer.cs
- XPathMessageFilter.cs
- ContentValidator.cs
- BrowserInteropHelper.cs
- RemoveFromCollection.cs
- SqlGatherProducedAliases.cs
- JoinTreeNode.cs
- RotateTransform3D.cs
- DataGridTableStyleMappingNameEditor.cs
- Int16.cs
- PathTooLongException.cs
- ReflectionPermission.cs
- CharStorage.cs
- MemberPath.cs
- DataTable.cs
- WindowsPen.cs
- PenLineCapValidation.cs
- SqlXmlStorage.cs
- FlowDocumentFormatter.cs
- DataTransferEventArgs.cs
- DbUpdateCommandTree.cs
- EntityContainer.cs
- InvalidWMPVersionException.cs
- CardSpaceShim.cs
- DispatcherBuilder.cs
- ImpersonationContext.cs
- FaultCode.cs
- SqlDataSourceView.cs
- AssemblyResourceLoader.cs
- TagPrefixCollection.cs
- RawUIStateInputReport.cs
- MimeObjectFactory.cs
- ModelVisual3D.cs
- TextBoxDesigner.cs
- TableColumnCollectionInternal.cs