Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / Mail / SmtpDigestAuthenticationModule.cs / 1 / 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; // #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) { 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,null, ContextFlags.Connection); } string resp = (challenge != null ? clientContext.GetOutgoingBlob(challenge) : clientContext.GetOutgoingBlob(null)); 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; // #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) { 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,null, ContextFlags.Connection); } string resp = (challenge != null ? clientContext.GetOutgoingBlob(challenge) : clientContext.GetOutgoingBlob(null)); 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
- XPathItem.cs
- EntityContainerEmitter.cs
- NamespaceCollection.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- StrongTypingException.cs
- PublishLicense.cs
- DataBinding.cs
- SrgsElementList.cs
- ReverseInheritProperty.cs
- Rfc2898DeriveBytes.cs
- QueryStringParameter.cs
- SoapSchemaMember.cs
- BindStream.cs
- TextTreePropertyUndoUnit.cs
- FileLogRecord.cs
- LinqDataView.cs
- Soap.cs
- StreamInfo.cs
- ClientScriptItemCollection.cs
- ClientRuntimeConfig.cs
- CharUnicodeInfo.cs
- PolyQuadraticBezierSegment.cs
- Bold.cs
- EndPoint.cs
- DetailsViewDeletedEventArgs.cs
- ThreadExceptionDialog.cs
- TextServicesCompartment.cs
- GridViewColumnCollection.cs
- NotConverter.cs
- TabletDeviceInfo.cs
- WindowShowOrOpenTracker.cs
- SafeEventLogWriteHandle.cs
- Activator.cs
- TimeSpanOrInfiniteConverter.cs
- UpdatePanelControlTrigger.cs
- BitmapEffectInput.cs
- ArrayListCollectionBase.cs
- processwaithandle.cs
- NameService.cs
- SequentialUshortCollection.cs
- LookupBindingPropertiesAttribute.cs
- PerformanceCounterLib.cs
- LineSegment.cs
- FullTextBreakpoint.cs
- FilteredReadOnlyMetadataCollection.cs
- PackageRelationship.cs
- Faults.cs
- PreservationFileWriter.cs
- WebBrowserDocumentCompletedEventHandler.cs
- SamlConditions.cs
- SqlAggregateChecker.cs
- SiteMapProvider.cs
- SiteOfOriginContainer.cs
- FacetValues.cs
- ContentDesigner.cs
- MetadataException.cs
- cookiecontainer.cs
- GeometryValueSerializer.cs
- CompletedAsyncResult.cs
- VirtualPathUtility.cs
- TextServicesManager.cs
- RtfToXamlReader.cs
- SqlAggregateChecker.cs
- PermissionAttributes.cs
- BindingCollection.cs
- RegexCapture.cs
- UnorderedHashRepartitionStream.cs
- Visitor.cs
- Membership.cs
- SafeProcessHandle.cs
- ColorAnimationUsingKeyFrames.cs
- PageThemeParser.cs
- ComponentSerializationService.cs
- EntityChangedParams.cs
- ExtractedStateEntry.cs
- GenericFlowSwitchHelper.cs
- UrlPropertyAttribute.cs
- SqlCharStream.cs
- ContainerActivationHelper.cs
- KeyTimeConverter.cs
- MetadataPropertyvalue.cs
- RenderContext.cs
- UnhandledExceptionEventArgs.cs
- TransactedReceiveData.cs
- EventRecord.cs
- SettingsPropertyValue.cs
- XmlSerializerNamespaces.cs
- ResourceDescriptionAttribute.cs
- EditorPartChrome.cs
- WebPartDisplayModeCollection.cs
- SymmetricKeyWrap.cs
- WindowsStartMenu.cs
- FormViewRow.cs
- OracleParameter.cs
- HttpInputStream.cs
- InsufficientMemoryException.cs
- Message.cs
- ConfigXmlCDataSection.cs
- StylusPoint.cs
- FrameworkObject.cs