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
- DrawingDrawingContext.cs
- LongTypeConverter.cs
- ColumnWidthChangedEvent.cs
- ActivityBuilderHelper.cs
- CanExecuteRoutedEventArgs.cs
- RepeaterItemEventArgs.cs
- MulticastDelegate.cs
- HandoffBehavior.cs
- Property.cs
- SchemaImporterExtensionsSection.cs
- DbgUtil.cs
- CurrentChangingEventArgs.cs
- ClientSettingsStore.cs
- LineInfo.cs
- ContextBase.cs
- ReadOnlyCollectionBase.cs
- TypeDescriptorContext.cs
- XmlWriterSettings.cs
- Pair.cs
- ApplicationSettingsBase.cs
- ResXResourceWriter.cs
- Process.cs
- SqlConnectionString.cs
- _HeaderInfo.cs
- ZipFileInfo.cs
- MarshalByValueComponent.cs
- CodeFieldReferenceExpression.cs
- AdapterUtil.cs
- Cell.cs
- BuildProviderAppliesToAttribute.cs
- DataGridViewHitTestInfo.cs
- SimpleWebHandlerParser.cs
- DataGridColumnHeaderAutomationPeer.cs
- SimplePropertyEntry.cs
- MediaTimeline.cs
- RegexCaptureCollection.cs
- CounterSetInstanceCounterDataSet.cs
- ConnectionInterfaceCollection.cs
- RegexCaptureCollection.cs
- CodeNamespace.cs
- ProtocolElement.cs
- EntityDataReader.cs
- SoapProtocolReflector.cs
- ListArgumentProvider.cs
- FixedPageStructure.cs
- CompiledQueryCacheEntry.cs
- Variable.cs
- MaskedTextBox.cs
- DropShadowEffect.cs
- CodeNamespace.cs
- DataGridViewColumnEventArgs.cs
- MappingSource.cs
- MediaPlayerState.cs
- EtwProvider.cs
- serverconfig.cs
- DetailsViewModeEventArgs.cs
- CodeObject.cs
- SpanIndex.cs
- BuildDependencySet.cs
- PageOrientation.cs
- TextTreeRootNode.cs
- WhitespaceRule.cs
- FloatUtil.cs
- ConfigsHelper.cs
- DataQuery.cs
- EventHandlerService.cs
- XmlDataSourceView.cs
- XmlNotation.cs
- XmlKeywords.cs
- SecurityTraceRecordHelper.cs
- SymmetricAlgorithm.cs
- HttpCookie.cs
- QueryHandler.cs
- TextLineBreak.cs
- ReachUIElementCollectionSerializerAsync.cs
- RightsManagementInformation.cs
- ToolStripItemEventArgs.cs
- MasterPageBuildProvider.cs
- TreeNodeEventArgs.cs
- ScrollEvent.cs
- ProgressBarAutomationPeer.cs
- MarkupCompiler.cs
- DesignerToolboxInfo.cs
- SerializationFieldInfo.cs
- X509ServiceCertificateAuthenticationElement.cs
- SecurityElement.cs
- SimpleType.cs
- NameValueSectionHandler.cs
- MultipartContentParser.cs
- DesignBindingPicker.cs
- LinqDataSourceValidationException.cs
- FileDetails.cs
- Events.cs
- UserNameSecurityTokenAuthenticator.cs
- ListViewInsertedEventArgs.cs
- EventToken.cs
- TextRenderer.cs
- XmlDocumentFragment.cs
- ValidatorCollection.cs
- RMEnrollmentPage2.cs