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
- DataControlReferenceCollection.cs
- InputBinding.cs
- Int32RectValueSerializer.cs
- Enlistment.cs
- HttpModuleCollection.cs
- MexBindingElement.cs
- XPathDocument.cs
- ComPlusInstanceContextInitializer.cs
- OrderedEnumerableRowCollection.cs
- SqlUdtInfo.cs
- MessageSecurityOverMsmqElement.cs
- FileDialog.cs
- StringSorter.cs
- LayoutTable.cs
- WindowsSpinner.cs
- TextBoxAutoCompleteSourceConverter.cs
- LassoHelper.cs
- ReceiveActivityDesignerTheme.cs
- EnlistmentState.cs
- CommandConverter.cs
- BitmapEffectGroup.cs
- EntityParameter.cs
- SpeechAudioFormatInfo.cs
- TypeDescriptorFilterService.cs
- FileDialog.cs
- odbcmetadatafactory.cs
- ExpressionEditor.cs
- FrameworkElementAutomationPeer.cs
- XmlText.cs
- UnauthorizedAccessException.cs
- ExpressionBuilderCollection.cs
- TemplatePropertyEntry.cs
- DbgUtil.cs
- TableCellAutomationPeer.cs
- SingleTagSectionHandler.cs
- ADMembershipProvider.cs
- DbDataAdapter.cs
- TextElementCollection.cs
- NameObjectCollectionBase.cs
- TrackingWorkflowEventArgs.cs
- XmlSchemaCompilationSettings.cs
- SqlXml.cs
- ContextMenuStrip.cs
- XmlUtil.cs
- TypeUsage.cs
- ConnectionInterfaceCollection.cs
- TypeDescriptionProvider.cs
- ButtonBase.cs
- UnauthorizedWebPart.cs
- PEFileEvidenceFactory.cs
- infer.cs
- RuntimeHelpers.cs
- Brush.cs
- MessageDescription.cs
- ActivityExecutionFilter.cs
- SimpleType.cs
- DataGridViewCellMouseEventArgs.cs
- NotificationContext.cs
- SynchronizationLockException.cs
- GeneralTransform3DTo2DTo3D.cs
- XmlSchemaComplexContent.cs
- PageAction.cs
- SimpleNameService.cs
- ObjectStateFormatter.cs
- SiteMembershipCondition.cs
- SHA384.cs
- XamlContextStack.cs
- SHA384Managed.cs
- AnimationStorage.cs
- EventData.cs
- Certificate.cs
- EntityViewContainer.cs
- NavigationExpr.cs
- EntityConnectionStringBuilderItem.cs
- ErrorItem.cs
- HttpModuleAction.cs
- AuthorizationRule.cs
- DockPattern.cs
- HttpConfigurationSystem.cs
- sitestring.cs
- Inline.cs
- XmlFormatReaderGenerator.cs
- ReflectionUtil.cs
- OpenFileDialog.cs
- FacetValues.cs
- PageContent.cs
- InlineObject.cs
- SurrogateSelector.cs
- SQLMoneyStorage.cs
- CacheRequest.cs
- Missing.cs
- ScopeElementCollection.cs
- CheckBoxField.cs
- RectAnimation.cs
- Vertex.cs
- TableStyle.cs
- FixedHighlight.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- RepeatButton.cs
- TcpStreams.cs