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
- SecurityRuntime.cs
- StatusBarAutomationPeer.cs
- Unit.cs
- FixedPosition.cs
- Emitter.cs
- StrokeCollectionDefaultValueFactory.cs
- TreeNodeMouseHoverEvent.cs
- SplitterEvent.cs
- IdentityNotMappedException.cs
- TextWriter.cs
- EdmFunctionAttribute.cs
- RepeaterItem.cs
- DataGridItemCollection.cs
- TransportSecurityProtocol.cs
- Baml2006KeyRecord.cs
- HttpListenerContext.cs
- OverflowException.cs
- EditorOptionAttribute.cs
- Sql8ExpressionRewriter.cs
- ExecutionContext.cs
- ReceiveContext.cs
- ObjectSerializerFactory.cs
- DesignerActionTextItem.cs
- HtmlInputPassword.cs
- IProvider.cs
- _DomainName.cs
- HotSpot.cs
- DataGridViewHeaderCell.cs
- KeyInfo.cs
- GrammarBuilderPhrase.cs
- DiagnosticsElement.cs
- SpeechEvent.cs
- EncodingNLS.cs
- WrappedIUnknown.cs
- KnownTypes.cs
- StateMachineSubscription.cs
- ResolveResponseInfo.cs
- LogicalTreeHelper.cs
- Missing.cs
- DataProtection.cs
- PathFigureCollection.cs
- _ProxyChain.cs
- EUCJPEncoding.cs
- TabControl.cs
- RequestQueue.cs
- SparseMemoryStream.cs
- HandleRef.cs
- XsltArgumentList.cs
- VariableReference.cs
- XmlAnyElementAttributes.cs
- SynchronizationHandlesCodeDomSerializer.cs
- GiveFeedbackEvent.cs
- AdornerHitTestResult.cs
- Underline.cs
- TypeForwardedToAttribute.cs
- MediaPlayer.cs
- XmlSerializerFactory.cs
- SqlTriggerAttribute.cs
- SmtpMail.cs
- MachineKeySection.cs
- ProfilePropertyNameValidator.cs
- EntityStoreSchemaFilterEntry.cs
- ByteAnimation.cs
- CalendarItem.cs
- Application.cs
- SqlFacetAttribute.cs
- AssociationSetMetadata.cs
- PointHitTestResult.cs
- OpenTypeLayoutCache.cs
- ProfileSection.cs
- NotFiniteNumberException.cs
- ArraySet.cs
- FacetValueContainer.cs
- SvcFileManager.cs
- ChildrenQuery.cs
- IndexedGlyphRun.cs
- RTLAwareMessageBox.cs
- AuthorizationContext.cs
- XpsResourceDictionary.cs
- FontInfo.cs
- HostVisual.cs
- latinshape.cs
- RegexGroup.cs
- WebPartEditorCancelVerb.cs
- PropertyChangeTracker.cs
- FunctionQuery.cs
- AspNetCompatibilityRequirementsMode.cs
- RoleService.cs
- StylusPlugin.cs
- LocalClientSecuritySettingsElement.cs
- ValidationErrorCollection.cs
- SoapSchemaImporter.cs
- EncoderBestFitFallback.cs
- UInt64Converter.cs
- MetadataItemEmitter.cs
- AutomationPeer.cs
- CriticalFinalizerObject.cs
- RewritingSimplifier.cs
- FontConverter.cs
- PenThread.cs