Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Net / System / Net / Mail / SmtpDigestAuthenticationModule.cs / 2 / 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
- PageParser.cs
- ConvertEvent.cs
- CachedFontFace.cs
- IUnknownConstantAttribute.cs
- MimeWriter.cs
- SHA256Managed.cs
- MemberAssignment.cs
- BackgroundFormatInfo.cs
- sqlmetadatafactory.cs
- SharedUtils.cs
- IEnumerable.cs
- CallbackException.cs
- PersistenceMetadataNamespace.cs
- CodeVariableDeclarationStatement.cs
- PingReply.cs
- TextServicesDisplayAttributePropertyRanges.cs
- OrderPreservingPipeliningSpoolingTask.cs
- SchemaCompiler.cs
- TriState.cs
- HttpStaticObjectsCollectionWrapper.cs
- InstalledFontCollection.cs
- RecognizerStateChangedEventArgs.cs
- TextProperties.cs
- DefaultSection.cs
- EditCommandColumn.cs
- Stylesheet.cs
- FrameworkContextData.cs
- GroupItem.cs
- BaseCAMarshaler.cs
- AnchoredBlock.cs
- EncoderParameters.cs
- CqlGenerator.cs
- ResolveCriteriaApril2005.cs
- AppearanceEditorPart.cs
- ContentType.cs
- cookie.cs
- SByte.cs
- ConfigurationElement.cs
- ObservableDictionary.cs
- Clock.cs
- RightNameExpirationInfoPair.cs
- StorageMappingFragment.cs
- UpdateDelegates.Generated.cs
- RuntimeCompatibilityAttribute.cs
- EntityWithChangeTrackerStrategy.cs
- ProtocolsSection.cs
- DbParameterCollectionHelper.cs
- ServiceHostFactory.cs
- RegexGroup.cs
- IsolatedStorageException.cs
- BuildProviderCollection.cs
- CheckBoxList.cs
- AuthenticationManager.cs
- ExpressionWriter.cs
- DispatcherExceptionFilterEventArgs.cs
- LocationSectionRecord.cs
- ColorContext.cs
- GridViewDeleteEventArgs.cs
- TimelineClockCollection.cs
- MimePart.cs
- TransportSecurityBindingElement.cs
- SQLConvert.cs
- SpecularMaterial.cs
- VersionPair.cs
- RuntimeIdentifierPropertyAttribute.cs
- ListView.cs
- CredentialSelector.cs
- HostSecurityManager.cs
- SubordinateTransaction.cs
- DataGridViewColumnStateChangedEventArgs.cs
- ShaperBuffers.cs
- IssuerInformation.cs
- AuthenticateEventArgs.cs
- ComboBox.cs
- BrowserInteropHelper.cs
- ItemsControl.cs
- RtfToXamlReader.cs
- ToolStripSettings.cs
- XmlAnyElementAttributes.cs
- UIAgentAsyncEndRequest.cs
- CssTextWriter.cs
- AssociationType.cs
- X509Utils.cs
- ListViewAutomationPeer.cs
- NativeMethods.cs
- LocatorManager.cs
- EntityKeyElement.cs
- DefaultPropertyAttribute.cs
- Rfc2898DeriveBytes.cs
- BaseTransportHeaders.cs
- TreeViewHitTestInfo.cs
- SendSecurityHeaderElement.cs
- TextCompositionManager.cs
- AbstractExpressions.cs
- EntityDataSourceChangedEventArgs.cs
- __TransparentProxy.cs
- ClientCultureInfo.cs
- InheritedPropertyChangedEventArgs.cs
- WindowsFormsHostPropertyMap.cs
- MetadataUtilsSmi.cs