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
- GroupBox.cs
- EmptyStringExpandableObjectConverter.cs
- DeadCharTextComposition.cs
- SecurityTokenProviderContainer.cs
- Size.cs
- SaveWorkflowAsyncResult.cs
- CancelEventArgs.cs
- ToolboxItemFilterAttribute.cs
- QueryServiceConfigHandle.cs
- ReversePositionQuery.cs
- RoutedCommand.cs
- CustomAttributeFormatException.cs
- AnnotationDocumentPaginator.cs
- ArraySubsetEnumerator.cs
- DataGridViewLayoutData.cs
- PageSettings.cs
- BindingElementExtensionElement.cs
- SoapServerProtocol.cs
- XmlSerializableServices.cs
- SoapConverter.cs
- InkCanvasSelectionAdorner.cs
- ContentControl.cs
- WorkflowApplicationException.cs
- QuaternionRotation3D.cs
- InputBuffer.cs
- BitmapPalette.cs
- CounterCreationDataCollection.cs
- MaterializeFromAtom.cs
- WCFModelStrings.Designer.cs
- Propagator.cs
- WindowsListView.cs
- ActivityExecutionContext.cs
- IisTraceListener.cs
- XamlClipboardData.cs
- JobPageOrder.cs
- Margins.cs
- AuthenticationManager.cs
- DataGridViewButtonColumn.cs
- TableLayout.cs
- EmissiveMaterial.cs
- Matrix.cs
- GridViewColumn.cs
- ImageListStreamer.cs
- CustomTrackingRecord.cs
- XmlSchemaSequence.cs
- PowerModeChangedEventArgs.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ColumnCollection.cs
- objectresult_tresulttype.cs
- ObjectStorage.cs
- IdentitySection.cs
- XmlIlVisitor.cs
- SerializableReadOnlyDictionary.cs
- SafeFileMappingHandle.cs
- GlyphRunDrawing.cs
- UnwrappedTypesXmlSerializerManager.cs
- WindowsListViewScroll.cs
- IisTraceListener.cs
- ToolTip.cs
- SqlTrackingWorkflowInstance.cs
- CreateDataSourceDialog.cs
- SiteMembershipCondition.cs
- ListViewItemMouseHoverEvent.cs
- TextShapeableCharacters.cs
- FixedSOMFixedBlock.cs
- PointLight.cs
- OdbcPermission.cs
- DataSvcMapFileSerializer.cs
- CharUnicodeInfo.cs
- PointAnimation.cs
- XmlWhitespace.cs
- MeasurementDCInfo.cs
- OutputCacheSettingsSection.cs
- Enum.cs
- FixedSOMGroup.cs
- ErrorTableItemStyle.cs
- DateTimeConverter2.cs
- WebScriptMetadataMessage.cs
- LinqDataSourceHelper.cs
- NonPrimarySelectionGlyph.cs
- ViewGenerator.cs
- wgx_commands.cs
- UniqueEventHelper.cs
- CryptoConfig.cs
- MutexSecurity.cs
- Int64Converter.cs
- JapaneseCalendar.cs
- LifetimeServices.cs
- CalculatedColumn.cs
- TemplateKey.cs
- XsltLoader.cs
- LinkArea.cs
- DataControlButton.cs
- ClientTargetSection.cs
- SrgsItemList.cs
- TdsParser.cs
- ClientTargetSection.cs
- ResourceReferenceKeyNotFoundException.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- XamlToRtfWriter.cs