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
- EventLog.cs
- Attributes.cs
- Wildcard.cs
- BindStream.cs
- XmlDocumentType.cs
- ArrayConverter.cs
- LineServicesRun.cs
- BitmapEffectCollection.cs
- SqlMethodAttribute.cs
- RelationshipConstraintValidator.cs
- LinkLabel.cs
- DataError.cs
- KerberosSecurityTokenProvider.cs
- SplitterPanel.cs
- BooleanAnimationBase.cs
- WindowsStatusBar.cs
- DataContractSerializer.cs
- Scheduler.cs
- MenuEventArgs.cs
- PageContentCollection.cs
- DataObject.cs
- InvokeProviderWrapper.cs
- CriticalExceptions.cs
- GCHandleCookieTable.cs
- Timer.cs
- CompilerCollection.cs
- NameSpaceExtractor.cs
- SqlTypeConverter.cs
- RegisteredHiddenField.cs
- GeneralTransform2DTo3DTo2D.cs
- MappingModelBuildProvider.cs
- NullableDoubleSumAggregationOperator.cs
- TraceRecords.cs
- TriggerAction.cs
- IPEndPointCollection.cs
- CommonXSendMessage.cs
- PackageDigitalSignatureManager.cs
- UIElementParagraph.cs
- SqlUtils.cs
- FixedSOMElement.cs
- DataGridHelper.cs
- Help.cs
- Environment.cs
- AuditLevel.cs
- MsdtcClusterUtils.cs
- EditorPartCollection.cs
- MetadataPropertyCollection.cs
- SettingsPropertyValueCollection.cs
- ExpressionConverter.cs
- GridSplitter.cs
- WebBrowserPermission.cs
- TypeBuilder.cs
- XmlWrappingReader.cs
- AmbientLight.cs
- EUCJPEncoding.cs
- AbandonedMutexException.cs
- Calendar.cs
- HttpServerUtilityWrapper.cs
- ChildrenQuery.cs
- DataGrid.cs
- TextPointer.cs
- HuffModule.cs
- EtwTrace.cs
- VarRemapper.cs
- ErrorStyle.cs
- SafeNativeMethods.cs
- XmlDigitalSignatureProcessor.cs
- StructuralCache.cs
- NamespaceTable.cs
- CharConverter.cs
- Grant.cs
- NameGenerator.cs
- ScalarType.cs
- OrderedDictionary.cs
- Vector3dCollection.cs
- ObjectManager.cs
- RelationshipEndMember.cs
- HtmlTableCell.cs
- Baml2006Reader.cs
- RawStylusInputReport.cs
- Axis.cs
- BooleanProjectedSlot.cs
- ConfigXmlAttribute.cs
- SharedHttpTransportManager.cs
- ToolStripControlHost.cs
- CodeExpressionStatement.cs
- XmlStringTable.cs
- SecurityRuntime.cs
- FeatureSupport.cs
- DataKey.cs
- HttpHandlersSection.cs
- SqlClientWrapperSmiStream.cs
- ConfigXmlCDataSection.cs
- QilValidationVisitor.cs
- ImplicitInputBrush.cs
- SortKey.cs
- PlainXmlSerializer.cs
- AssociationSetMetadata.cs
- MonikerUtility.cs
- WebScriptMetadataMessageEncoderFactory.cs