Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / SmtpDigestAuthenticationModule.cs / 1305376 / SmtpDigestAuthenticationModule.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 SmtpDigestAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpDigestAuthenticationModule() { } #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) { lock (this.sessions) { NTAuthentication clientContext = this.sessions[sessionCookie] as NTAuthentication; if (clientContext == null) { if (credential == null){ return null; } // this.sessions[sessionCookie] = clientContext = new NTAuthentication(false, "WDigest", credential, spn, ContextFlags.Connection, channelBindingToken); } string resp = clientContext.GetOutgoingBlob(challenge); if (!clientContext.IsCompleted) { return new Authorization(resp, false); } else { this.sessions.Remove(sessionCookie); return new Authorization(resp, true); } } } public string AuthenticationType { get { return "WDigest"; } } 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 SmtpDigestAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpDigestAuthenticationModule() { } #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) { lock (this.sessions) { NTAuthentication clientContext = this.sessions[sessionCookie] as NTAuthentication; if (clientContext == null) { if (credential == null){ return null; } // this.sessions[sessionCookie] = clientContext = new NTAuthentication(false, "WDigest", credential, spn, ContextFlags.Connection, channelBindingToken); } string resp = clientContext.GetOutgoingBlob(challenge); if (!clientContext.IsCompleted) { return new Authorization(resp, false); } else { this.sessions.Remove(sessionCookie); return new Authorization(resp, true); } } } public string AuthenticationType { get { return "WDigest"; } } 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
- SerTrace.cs
- CombinedTcpChannel.cs
- ExtenderHelpers.cs
- UnwrappedTypesXmlSerializerManager.cs
- EncryptedHeaderXml.cs
- XamlWriter.cs
- CombinedGeometry.cs
- ContextMenuAutomationPeer.cs
- TextProperties.cs
- Journaling.cs
- FontCacheUtil.cs
- PersonalizablePropertyEntry.cs
- SqlCacheDependencyDatabaseCollection.cs
- hresults.cs
- AttachmentService.cs
- HyperLinkField.cs
- ByteAnimation.cs
- KerberosTicketHashIdentifierClause.cs
- ProcessHostServerConfig.cs
- TimerElapsedEvenArgs.cs
- XmlSchemaAttributeGroupRef.cs
- DataGridViewMethods.cs
- SizeF.cs
- MobileControlsSection.cs
- OdbcParameterCollection.cs
- ApplicationTrust.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- Stacktrace.cs
- XmlSiteMapProvider.cs
- Closure.cs
- SymmetricAlgorithm.cs
- NativeMethods.cs
- HandleRef.cs
- RegexRunner.cs
- UTF8Encoding.cs
- ComplexLine.cs
- WebPartCatalogCloseVerb.cs
- SelectionItemProviderWrapper.cs
- XamlStream.cs
- DataGridTablesFactory.cs
- SrgsDocument.cs
- CodeGenerator.cs
- TrackingStringDictionary.cs
- StrokeCollectionConverter.cs
- wgx_commands.cs
- MLangCodePageEncoding.cs
- HttpHandler.cs
- WebReferencesBuildProvider.cs
- ObjectConverter.cs
- Repeater.cs
- Activity.cs
- TableLayoutSettingsTypeConverter.cs
- SoapCommonClasses.cs
- SmtpNetworkElement.cs
- ToolStripDropDownClosedEventArgs.cs
- SoundPlayer.cs
- XamlPoint3DCollectionSerializer.cs
- SafeCryptoHandles.cs
- EventLogEntry.cs
- SelectQueryOperator.cs
- MsiStyleLogWriter.cs
- BigInt.cs
- CompatibleComparer.cs
- DataColumnChangeEvent.cs
- SEHException.cs
- CodeCommentStatement.cs
- XmlSchemaRedefine.cs
- TdsParser.cs
- util.cs
- VariableQuery.cs
- _TransmitFileOverlappedAsyncResult.cs
- MemberPath.cs
- Point3DConverter.cs
- GregorianCalendar.cs
- ToolboxItemCollection.cs
- StylusCaptureWithinProperty.cs
- DBConnectionString.cs
- PolicyChain.cs
- Inflater.cs
- AnimationClockResource.cs
- VideoDrawing.cs
- FrameworkTemplate.cs
- TextRange.cs
- Buffer.cs
- SerializationObjectManager.cs
- SQLBinary.cs
- HostingEnvironmentSection.cs
- XmlTextEncoder.cs
- FileLevelControlBuilderAttribute.cs
- latinshape.cs
- ControlPropertyNameConverter.cs
- HandleValueEditor.cs
- PreProcessInputEventArgs.cs
- MenuBindingsEditor.cs
- ParameterBuilder.cs
- AutomationPatternInfo.cs
- AspCompat.cs
- StatusBar.cs
- CodeDomSerializer.cs
- XmlIlTypeHelper.cs