Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 1305376 / 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; using System.Security.Authentication.ExtendedProtection; #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, string spn, ChannelBinding channelBindingToken) { 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.UTF8.GetBytes(userName)), false); } else { this.sessions.Remove(sessionCookie); // return new Authorization(Convert.ToBase64String(System.Text.Encoding.UTF8.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
- XmlKeywords.cs
- CopyNodeSetAction.cs
- UIElement3D.cs
- DBConcurrencyException.cs
- DSASignatureFormatter.cs
- EntityContainerAssociationSetEnd.cs
- MetadataItemCollectionFactory.cs
- BindingExpression.cs
- DirectionalLight.cs
- CalendarData.cs
- FormViewDeleteEventArgs.cs
- IOException.cs
- AdditionalEntityFunctions.cs
- XamlTemplateSerializer.cs
- UndoManager.cs
- BinHexEncoder.cs
- UnwrappedTypesXmlSerializerManager.cs
- UInt64Converter.cs
- WebPartUserCapability.cs
- Panel.cs
- GenericAuthenticationEventArgs.cs
- SqlNodeAnnotations.cs
- Timer.cs
- StylusButtonEventArgs.cs
- Operand.cs
- ExclusiveTcpListener.cs
- StrokeCollectionDefaultValueFactory.cs
- ProfileProvider.cs
- SqlDataSourceQueryEditorForm.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- CompositeKey.cs
- KoreanLunisolarCalendar.cs
- ConfigurationStrings.cs
- JoinGraph.cs
- AppearanceEditorPart.cs
- IndentTextWriter.cs
- HttpModuleActionCollection.cs
- SwitchLevelAttribute.cs
- StronglyTypedResourceBuilder.cs
- Peer.cs
- Icon.cs
- XmlSerializerImportOptions.cs
- XmlSerializationReader.cs
- Region.cs
- WindowsScrollBarBits.cs
- ServiceSecurityAuditElement.cs
- QuaternionConverter.cs
- HttpException.cs
- SpeechRecognizer.cs
- CompModHelpers.cs
- SafeHandles.cs
- Decoder.cs
- PrivilegeNotHeldException.cs
- sitestring.cs
- AppDomainProtocolHandler.cs
- BamlVersionHeader.cs
- CultureTable.cs
- QilName.cs
- ResourcePermissionBase.cs
- InplaceBitmapMetadataWriter.cs
- PriorityBinding.cs
- GeneralTransform3D.cs
- QueryCacheKey.cs
- ViewManagerAttribute.cs
- SafeReversePInvokeHandle.cs
- SchemaTableOptionalColumn.cs
- TemplateBindingExtension.cs
- SHA1CryptoServiceProvider.cs
- StylusLogic.cs
- COM2ColorConverter.cs
- TraceSection.cs
- SequentialUshortCollection.cs
- ChtmlTextWriter.cs
- AdjustableArrowCap.cs
- Journal.cs
- IdentityHolder.cs
- StringReader.cs
- WebBrowserNavigatingEventHandler.cs
- HtmlElementEventArgs.cs
- AuthenticationManager.cs
- DummyDataSource.cs
- EdmRelationshipRoleAttribute.cs
- NameSpaceExtractor.cs
- BindStream.cs
- ActivationServices.cs
- MsmqSecureHashAlgorithm.cs
- GridViewUpdateEventArgs.cs
- MLangCodePageEncoding.cs
- VScrollBar.cs
- CompilationUnit.cs
- IOThreadTimer.cs
- MemberHolder.cs
- WindowClosedEventArgs.cs
- ImportContext.cs
- SapiRecognizer.cs
- Int64AnimationUsingKeyFrames.cs
- InputBinder.cs
- DbProviderFactoriesConfigurationHandler.cs
- ListViewEditEventArgs.cs
- View.cs