Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- PropertyTab.cs
- MultilineStringConverter.cs
- NewArray.cs
- LogicalTreeHelper.cs
- LessThanOrEqual.cs
- InvokePattern.cs
- NameHandler.cs
- ImmutableObjectAttribute.cs
- XmlSchemaExternal.cs
- ApplicationId.cs
- QilXmlWriter.cs
- RealizationDrawingContextWalker.cs
- _OverlappedAsyncResult.cs
- FormViewInsertEventArgs.cs
- SqlGenericUtil.cs
- NegotiateStream.cs
- PolygonHotSpot.cs
- Package.cs
- TableLayoutSettings.cs
- ApplicationId.cs
- ComplexBindingPropertiesAttribute.cs
- ListManagerBindingsCollection.cs
- printdlgexmarshaler.cs
- diagnosticsswitches.cs
- WriteFileContext.cs
- ControlPropertyNameConverter.cs
- CommittableTransaction.cs
- DllNotFoundException.cs
- ReflectionHelper.cs
- ExpressionsCollectionConverter.cs
- SoapEnumAttribute.cs
- ComponentResourceKey.cs
- Model3D.cs
- AssemblyUtil.cs
- Interlocked.cs
- SqlTriggerContext.cs
- UseAttributeSetsAction.cs
- FontWeights.cs
- X509CertificateChain.cs
- TemplateFactory.cs
- RegexFCD.cs
- XmlUtil.cs
- PropertyBuilder.cs
- assemblycache.cs
- DynamicContractTypeBuilder.cs
- StateBag.cs
- ProxyManager.cs
- WindowsTokenRoleProvider.cs
- XomlDesignerLoader.cs
- OperationInvokerBehavior.cs
- ChannelSinkStacks.cs
- Helpers.cs
- SafeLibraryHandle.cs
- ProfileModule.cs
- XslAstAnalyzer.cs
- InternalTypeHelper.cs
- CodeIdentifiers.cs
- Exceptions.cs
- SoapRpcMethodAttribute.cs
- ComponentDispatcherThread.cs
- DbCommandTree.cs
- MatrixAnimationBase.cs
- Module.cs
- InertiaExpansionBehavior.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- URLIdentityPermission.cs
- ProvidersHelper.cs
- InputMethodStateTypeInfo.cs
- QilFactory.cs
- SiteMapPath.cs
- XmlArrayItemAttributes.cs
- DbDeleteCommandTree.cs
- Timer.cs
- StateManagedCollection.cs
- AbstractSvcMapFileLoader.cs
- ToolStripTextBox.cs
- WrapPanel.cs
- CellTreeNode.cs
- DeviceFilterEditorDialog.cs
- RoleManagerEventArgs.cs
- RemoteWebConfigurationHost.cs
- LocatorPart.cs
- ConstrainedDataObject.cs
- ReferencedAssembly.cs
- RankException.cs
- GlyphShapingProperties.cs
- PointAnimation.cs
- DataTemplate.cs
- EpmContentDeSerializer.cs
- UserControl.cs
- OleDbReferenceCollection.cs
- TypeDefinition.cs
- QuaternionAnimationBase.cs
- RotateTransform3D.cs
- EntityViewGenerator.cs
- File.cs
- Pen.cs
- DbParameterHelper.cs
- SemanticResultValue.cs
- ScriptManager.cs