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
- ValidatingPropertiesEventArgs.cs
- SymbolTable.cs
- XmlSchemaSimpleContentExtension.cs
- SchemaAttDef.cs
- AutoResetEvent.cs
- DataGridViewRowPrePaintEventArgs.cs
- EncodingInfo.cs
- SqlError.cs
- KeyGestureConverter.cs
- NativeMethods.cs
- ObjectDataSourceView.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- DBParameter.cs
- PropertyChangingEventArgs.cs
- CounterCreationData.cs
- DetailsViewPageEventArgs.cs
- GlobalItem.cs
- StreamWriter.cs
- TextAdaptor.cs
- listitem.cs
- updatecommandorderer.cs
- DataServicePagingProviderWrapper.cs
- EntityDataSourceUtil.cs
- XmlNamespaceMapping.cs
- IsolatedStoragePermission.cs
- DataGridViewImageCell.cs
- RsaSecurityToken.cs
- PinnedBufferMemoryStream.cs
- ConditionalBranch.cs
- SizeIndependentAnimationStorage.cs
- WindowsNonControl.cs
- SelectionHighlightInfo.cs
- DBSchemaTable.cs
- ToolBarOverflowPanel.cs
- TextLine.cs
- SemaphoreSecurity.cs
- BufferedReadStream.cs
- PersonalizationProviderHelper.cs
- EntityDataSourceWizardForm.cs
- RtfToXamlLexer.cs
- CharacterString.cs
- CodeMemberProperty.cs
- XmlObjectSerializerReadContextComplex.cs
- TemplateManager.cs
- TextElementCollectionHelper.cs
- DBPropSet.cs
- SchemaNotation.cs
- ValidationHelper.cs
- PropertyValueUIItem.cs
- _NegoStream.cs
- AutomationPatternInfo.cs
- EntityDataReader.cs
- EntityContainerRelationshipSetEnd.cs
- BindingCompleteEventArgs.cs
- AdRotator.cs
- ToolStripPanelSelectionGlyph.cs
- AnimationClockResource.cs
- JsonServiceDocumentSerializer.cs
- EditingScope.cs
- OrderByQueryOptionExpression.cs
- SettingsPropertyValue.cs
- TemplatingOptionsDialog.cs
- StickyNoteAnnotations.cs
- ThaiBuddhistCalendar.cs
- OperationPickerDialog.cs
- AnonymousIdentificationModule.cs
- ReadOnlyCollection.cs
- Int32Rect.cs
- StyleXamlParser.cs
- StoryFragments.cs
- Msec.cs
- DataGridTextBox.cs
- _SafeNetHandles.cs
- ControlAdapter.cs
- BuildProvider.cs
- ServiceEndpointCollection.cs
- TypeElement.cs
- PriorityBindingExpression.cs
- TextDecorations.cs
- XPathEmptyIterator.cs
- ByteConverter.cs
- DataControlFieldHeaderCell.cs
- OptimizedTemplateContent.cs
- KeyValuePairs.cs
- Container.cs
- EndPoint.cs
- ReachPageContentSerializerAsync.cs
- XmlNodeReader.cs
- ProfileSection.cs
- DataGridView.cs
- HttpHandlerActionCollection.cs
- WebServiceEnumData.cs
- control.ime.cs
- TextBox.cs
- ExpressionNode.cs
- DataGridColumnHeaderCollection.cs
- DBAsyncResult.cs
- InputProcessorProfilesLoader.cs
- DbConnectionOptions.cs
- DataControlField.cs