Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 5 / 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 } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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 } } // 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
- DataGridAutoFormatDialog.cs
- MiniCustomAttributeInfo.cs
- Object.cs
- ValuePatternIdentifiers.cs
- PersonalizationProviderCollection.cs
- WebEventCodes.cs
- TaskFileService.cs
- CorrelationQueryBehavior.cs
- XmlReflectionImporter.cs
- ResolveNameEventArgs.cs
- HScrollBar.cs
- DetailsViewPagerRow.cs
- DataKey.cs
- Error.cs
- ReplyChannelBinder.cs
- InstancePersistenceCommand.cs
- DefaultTraceListener.cs
- WmlCommandAdapter.cs
- SmtpCommands.cs
- PopupEventArgs.cs
- Row.cs
- HtmlWindowCollection.cs
- Properties.cs
- webproxy.cs
- AppDomainInfo.cs
- TargetInvocationException.cs
- ADMembershipProvider.cs
- TextPointerBase.cs
- RuntimeConfigurationRecord.cs
- TextSerializer.cs
- RepeaterItem.cs
- MeasureItemEvent.cs
- BitmapInitialize.cs
- Sql8ExpressionRewriter.cs
- URLMembershipCondition.cs
- Assembly.cs
- Message.cs
- AssemblyResourceLoader.cs
- ContentType.cs
- RealizedColumnsBlock.cs
- Pair.cs
- CallTemplateAction.cs
- SystemException.cs
- WebConfigurationFileMap.cs
- PcmConverter.cs
- ChannelPoolSettings.cs
- OleDbFactory.cs
- ArrangedElement.cs
- CompiledRegexRunnerFactory.cs
- MenuItem.cs
- BitmapEffectInput.cs
- TextBounds.cs
- GridViewRowEventArgs.cs
- CaseInsensitiveHashCodeProvider.cs
- SecUtil.cs
- ReverseInheritProperty.cs
- Compensation.cs
- mactripleDES.cs
- PopupRoot.cs
- ActionFrame.cs
- ReadWriteSpinLock.cs
- NavigationExpr.cs
- SchemaComplexType.cs
- MembershipPasswordException.cs
- BooleanToVisibilityConverter.cs
- ObjectListCommandCollection.cs
- VarRefManager.cs
- RtfFormatStack.cs
- FolderBrowserDialog.cs
- SqlDataSourceTableQuery.cs
- HyperLinkStyle.cs
- SecurityHelper.cs
- PermissionSet.cs
- PrimarySelectionAdorner.cs
- ArithmeticLiteral.cs
- Point3DKeyFrameCollection.cs
- UserControlCodeDomTreeGenerator.cs
- DataColumnMapping.cs
- _ScatterGatherBuffers.cs
- XhtmlTextWriter.cs
- SafeArrayRankMismatchException.cs
- ToolStripGrip.cs
- UnitControl.cs
- XmlILConstructAnalyzer.cs
- DoubleLinkListEnumerator.cs
- CircleHotSpot.cs
- ObjectSpanRewriter.cs
- BaseCAMarshaler.cs
- UniqueIdentifierService.cs
- PasswordTextContainer.cs
- ToolBarPanel.cs
- DetailsViewInsertEventArgs.cs
- WebServiceFaultDesigner.cs
- ErrorHandler.cs
- tooltip.cs
- NativeMethods.cs
- SqlReorderer.cs
- IpcServerChannel.cs
- CollectionAdapters.cs
- InArgumentConverter.cs