Code:
/ DotNET / DotNET / 8.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
- CreateParams.cs
- COM2Properties.cs
- NativeWindow.cs
- ServerIdentity.cs
- TextMarkerSource.cs
- __TransparentProxy.cs
- SqlDataReader.cs
- TrustVersion.cs
- OleDbCommandBuilder.cs
- InstalledFontCollection.cs
- IResourceProvider.cs
- XmlnsCompatibleWithAttribute.cs
- CollectionChangedEventManager.cs
- CustomTokenProvider.cs
- InternalBase.cs
- PassportAuthenticationEventArgs.cs
- SmiContext.cs
- AttributeSetAction.cs
- X509ScopedServiceCertificateElement.cs
- CodeConstructor.cs
- RequestResizeEvent.cs
- SafeFindHandle.cs
- TraceRecord.cs
- SecurityUtils.cs
- EventLogPermissionEntry.cs
- PerformanceCounterNameAttribute.cs
- TdsValueSetter.cs
- CustomAttributeSerializer.cs
- OleDbCommandBuilder.cs
- ComponentChangingEvent.cs
- QilTypeChecker.cs
- xamlnodes.cs
- MenuAdapter.cs
- DataColumnChangeEvent.cs
- COM2PropertyDescriptor.cs
- CompositeCollection.cs
- SnapLine.cs
- CalendarItem.cs
- FieldTemplateUserControl.cs
- DocumentPageView.cs
- DNS.cs
- XmlTextEncoder.cs
- FacetChecker.cs
- Opcode.cs
- QilPatternFactory.cs
- StoryFragments.cs
- LockedBorderGlyph.cs
- ActivationArguments.cs
- ResourceKey.cs
- AssemblyBuilder.cs
- TableItemStyle.cs
- StackBuilderSink.cs
- TableCell.cs
- PropertyGridView.cs
- HttpPostServerProtocol.cs
- TextEndOfSegment.cs
- TextElementCollection.cs
- DataGridViewCellValueEventArgs.cs
- ViewPort3D.cs
- CodeStatementCollection.cs
- securitymgrsite.cs
- AuthorizationRuleCollection.cs
- RuleSettings.cs
- SiblingIterators.cs
- UntypedNullExpression.cs
- TargetParameterCountException.cs
- AnimationLayer.cs
- Stacktrace.cs
- PropertyPushdownHelper.cs
- configsystem.cs
- DynamicMetaObject.cs
- NeutralResourcesLanguageAttribute.cs
- BaseDataListActionList.cs
- TransformValueSerializer.cs
- ElementUtil.cs
- FixedSOMLineCollection.cs
- ScalarConstant.cs
- Publisher.cs
- HostSecurityManager.cs
- RawTextInputReport.cs
- ArrangedElementCollection.cs
- DynamicILGenerator.cs
- COM2PropertyDescriptor.cs
- UnsignedPublishLicense.cs
- cookieexception.cs
- CellParagraph.cs
- JsonXmlDataContract.cs
- CommonObjectSecurity.cs
- ByteAnimationUsingKeyFrames.cs
- AnnouncementEndpoint.cs
- DecoderReplacementFallback.cs
- VirtualizingPanel.cs
- QueryConverter.cs
- Adorner.cs
- documentation.cs
- ProfileBuildProvider.cs
- TagPrefixAttribute.cs
- SpellCheck.cs
- BindingSource.cs
- FixedSOMLineCollection.cs