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
- ToolStripKeyboardHandlingService.cs
- DataGridViewBindingCompleteEventArgs.cs
- VoiceChangeEventArgs.cs
- DataControlButton.cs
- PolicyLevel.cs
- DataServiceQuery.cs
- documentation.cs
- UpdateEventArgs.cs
- AttributeSetAction.cs
- AndCondition.cs
- DiagnosticStrings.cs
- TimeSpanValidator.cs
- GeometryCollection.cs
- PublisherIdentityPermission.cs
- FormViewPagerRow.cs
- BoolExpression.cs
- Matrix3DStack.cs
- WorkflowOperationFault.cs
- LeaseManager.cs
- BindStream.cs
- BindingMemberInfo.cs
- codemethodreferenceexpression.cs
- EventMemberCodeDomSerializer.cs
- SqlProvider.cs
- ButtonChrome.cs
- ListComponentEditor.cs
- EncryptedKey.cs
- QueryOperatorEnumerator.cs
- FormViewDeleteEventArgs.cs
- GeneralTransform2DTo3DTo2D.cs
- ColorTransform.cs
- UnsafeNativeMethods.cs
- TextBoxBaseDesigner.cs
- SeverityFilter.cs
- MouseCaptureWithinProperty.cs
- SparseMemoryStream.cs
- UidPropertyAttribute.cs
- FileUpload.cs
- PackageProperties.cs
- DBSqlParserColumn.cs
- ChannelEndpointElement.cs
- EdmMember.cs
- TemplateInstanceAttribute.cs
- OutputScopeManager.cs
- TextEffect.cs
- Soap.cs
- EmbeddedObject.cs
- DefaultDialogButtons.cs
- RequestQueryParser.cs
- Camera.cs
- HttpContext.cs
- RandomNumberGenerator.cs
- ToolBarTray.cs
- RoutedEventHandlerInfo.cs
- QueryTask.cs
- BitmapEffectGeneralTransform.cs
- SqlReferenceCollection.cs
- BrowserCapabilitiesCodeGenerator.cs
- CommandPlan.cs
- TextProperties.cs
- EncryptedType.cs
- MessageFault.cs
- PDBReader.cs
- RepeatButtonAutomationPeer.cs
- _IPv6Address.cs
- AssociationTypeEmitter.cs
- LocatorPart.cs
- Scheduling.cs
- SortedDictionary.cs
- SHA512.cs
- AbsoluteQuery.cs
- LabelAutomationPeer.cs
- HttpWriter.cs
- Version.cs
- DeobfuscatingStream.cs
- PrimaryKeyTypeConverter.cs
- ProtocolsSection.cs
- SchemaManager.cs
- XmlSchemaProviderAttribute.cs
- ResourcePermissionBase.cs
- SqlExpressionNullability.cs
- SqlDataReaderSmi.cs
- CatalogZoneBase.cs
- RichTextBoxContextMenu.cs
- CharacterBufferReference.cs
- ConstraintManager.cs
- DataFormats.cs
- DataGridViewColumnConverter.cs
- SoapTypeAttribute.cs
- UnhandledExceptionEventArgs.cs
- ConnectionInterfaceCollection.cs
- StatusCommandUI.cs
- UIElement3DAutomationPeer.cs
- XPathSelectionIterator.cs
- AssemblyCache.cs
- InfoCardRSACryptoProvider.cs
- MultipleViewPatternIdentifiers.cs
- DynamicPropertyHolder.cs
- Hashtable.cs
- InstanceContext.cs