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
- CurrentTimeZone.cs
- Hash.cs
- HitTestParameters3D.cs
- XmlSchemaAttributeGroup.cs
- DeleteStoreRequest.cs
- CodeAssignStatement.cs
- TextRange.cs
- CompModSwitches.cs
- TransactionException.cs
- RemotingConfigParser.cs
- SettingsProperty.cs
- EventTrigger.cs
- XDeferredAxisSource.cs
- RijndaelManagedTransform.cs
- ScrollItemProviderWrapper.cs
- login.cs
- WmpBitmapEncoder.cs
- Vector.cs
- RetriableClipboard.cs
- DESCryptoServiceProvider.cs
- DisplayToken.cs
- BinaryConverter.cs
- HwndKeyboardInputProvider.cs
- RawStylusInput.cs
- CreateUserWizard.cs
- XPathExpr.cs
- BindingSource.cs
- BinaryHeap.cs
- DBConcurrencyException.cs
- GrammarBuilderDictation.cs
- DragCompletedEventArgs.cs
- DesignTimeVisibleAttribute.cs
- PersianCalendar.cs
- PlacementWorkspace.cs
- SqlRetyper.cs
- Function.cs
- StateFinalizationDesigner.cs
- DbConnectionPoolCounters.cs
- WebPartZoneBase.cs
- TransformerConfigurationWizardBase.cs
- DataBoundLiteralControl.cs
- PartialCachingAttribute.cs
- WebPartsSection.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- QueryContinueDragEvent.cs
- TileBrush.cs
- GenerateTemporaryTargetAssembly.cs
- SchemaTableOptionalColumn.cs
- DelegateArgumentReference.cs
- WizardSideBarListControlItemEventArgs.cs
- InputQueue.cs
- ContextMarshalException.cs
- Soap.cs
- CodeDomConfigurationHandler.cs
- MulticastNotSupportedException.cs
- TextFormatterHost.cs
- DesignerPerfEventProvider.cs
- XsdDataContractImporter.cs
- Point3DAnimationUsingKeyFrames.cs
- FileStream.cs
- ControllableStoryboardAction.cs
- DataServiceResponse.cs
- IDReferencePropertyAttribute.cs
- SpellerHighlightLayer.cs
- DrawingVisualDrawingContext.cs
- MessageContractMemberAttribute.cs
- CommandDesigner.cs
- Int16KeyFrameCollection.cs
- AtomParser.cs
- HttpRequest.cs
- MobileControlsSection.cs
- TraceSection.cs
- TableStyle.cs
- SqlServer2KCompatibilityAnnotation.cs
- InstanceCreationEditor.cs
- ThreadPool.cs
- SafeBitVector32.cs
- While.cs
- MostlySingletonList.cs
- BlockCollection.cs
- DocumentApplicationJournalEntry.cs
- ConnectionConsumerAttribute.cs
- SamlSubjectStatement.cs
- DataGridViewCellCancelEventArgs.cs
- RemoteWebConfigurationHost.cs
- SmiContext.cs
- Logging.cs
- QilFactory.cs
- SchemaAttDef.cs
- BatchParser.cs
- TextBoxAutomationPeer.cs
- VariableDesigner.xaml.cs
- ParseNumbers.cs
- PostBackOptions.cs
- CodeRegionDirective.cs
- BitmapInitialize.cs
- XPathPatternBuilder.cs
- AttributeSetAction.cs
- DependsOnAttribute.cs
- SqlClientWrapperSmiStreamChars.cs