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
- SrgsRule.cs
- Statements.cs
- Configuration.cs
- DataPager.cs
- XmlSchemaComplexContentRestriction.cs
- MultiView.cs
- SQLRoleProvider.cs
- MeshGeometry3D.cs
- COM2IDispatchConverter.cs
- FigureParagraph.cs
- XmlChildEnumerator.cs
- ReachDocumentReferenceSerializerAsync.cs
- AnchoredBlock.cs
- DictionaryContent.cs
- DesignerSerializationOptionsAttribute.cs
- ITreeGenerator.cs
- CheckedListBox.cs
- StrongNameUtility.cs
- MarkupWriter.cs
- RichTextBoxConstants.cs
- DescendantBaseQuery.cs
- SharedPersonalizationStateInfo.cs
- DrawingContextWalker.cs
- PolyBezierSegment.cs
- SmtpReplyReaderFactory.cs
- ThicknessAnimation.cs
- CustomAttributeFormatException.cs
- BinarySecretKeyIdentifierClause.cs
- MarkupExtensionParser.cs
- SqlFacetAttribute.cs
- SQLRoleProvider.cs
- GB18030Encoding.cs
- TypeResolvingOptionsAttribute.cs
- ListViewInsertEventArgs.cs
- ServerValidateEventArgs.cs
- TableParagraph.cs
- CounterCreationDataCollection.cs
- CodeTypeMember.cs
- ContainerCodeDomSerializer.cs
- Int64KeyFrameCollection.cs
- DataGridRowDetailsEventArgs.cs
- ManagementEventWatcher.cs
- ResizingMessageFilter.cs
- OdbcTransaction.cs
- StoreAnnotationsMap.cs
- StrongNamePublicKeyBlob.cs
- ColumnResizeAdorner.cs
- SrgsElementList.cs
- HttpClientCredentialType.cs
- WebPartConnection.cs
- OdbcCommand.cs
- SafeSystemMetrics.cs
- TextSelectionProcessor.cs
- BindingCompleteEventArgs.cs
- StreamInfo.cs
- DataGridViewCellCollection.cs
- KeyValuePairs.cs
- LZCodec.cs
- FileSystemWatcher.cs
- BaseCAMarshaler.cs
- BrowserDefinition.cs
- RoleGroup.cs
- HandlerBase.cs
- JapaneseLunisolarCalendar.cs
- XsltArgumentList.cs
- StaticFileHandler.cs
- PieceNameHelper.cs
- OletxTransactionFormatter.cs
- ActivityCodeDomReferenceService.cs
- XmlTypeAttribute.cs
- SmtpCommands.cs
- DoubleLinkListEnumerator.cs
- StateManagedCollection.cs
- SynchronizedChannelCollection.cs
- PeerObject.cs
- KeyFrames.cs
- PropertyPathConverter.cs
- TypeResolvingOptions.cs
- DataGridLinkButton.cs
- ConfigXmlCDataSection.cs
- DataGridRowAutomationPeer.cs
- TextBoxAutoCompleteSourceConverter.cs
- IncomingWebResponseContext.cs
- TrackingWorkflowEventArgs.cs
- SingleObjectCollection.cs
- SoapInteropTypes.cs
- ServiceChannelManager.cs
- SignatureToken.cs
- Converter.cs
- SchemaConstraints.cs
- WebPartsSection.cs
- TableColumnCollection.cs
- XmlStringTable.cs
- DecimalFormatter.cs
- CompositeCollectionView.cs
- InputLanguageProfileNotifySink.cs
- HttpServerUtilityWrapper.cs
- Comparer.cs
- EntityDesignerDataSourceView.cs
- COM2ComponentEditor.cs