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
- DefaultPrintController.cs
- IPAddress.cs
- SoapAttributes.cs
- ConcurrentQueue.cs
- OnOperation.cs
- TimeSpanValidatorAttribute.cs
- TypedRowHandler.cs
- Rotation3DAnimation.cs
- StartUpEventArgs.cs
- SplitContainerDesigner.cs
- XhtmlBasicControlAdapter.cs
- ProviderSettings.cs
- PrtCap_Reader.cs
- ListViewInsertionMark.cs
- HttpCookiesSection.cs
- ClientRoleProvider.cs
- ToolBarButtonClickEvent.cs
- SqlGenericUtil.cs
- CharacterHit.cs
- StatusBarPanel.cs
- SecurityTraceRecordHelper.cs
- UDPClient.cs
- Rect3D.cs
- MouseEventArgs.cs
- ProjectionCamera.cs
- SafeNativeMethods.cs
- MetafileHeader.cs
- HtmlTableRow.cs
- ViewBox.cs
- InOutArgumentConverter.cs
- ListenerElementsCollection.cs
- DataColumnChangeEvent.cs
- SqlNode.cs
- SymmetricAlgorithm.cs
- LZCodec.cs
- SqlCacheDependencySection.cs
- MobileFormsAuthentication.cs
- ListBoxItem.cs
- ModelFactory.cs
- TraceHandlerErrorFormatter.cs
- Condition.cs
- Variant.cs
- BitmapSizeOptions.cs
- DataGridViewLayoutData.cs
- TypeSemantics.cs
- TreeView.cs
- AliasGenerator.cs
- ParallelDesigner.cs
- ClientSettings.cs
- ListViewInsertEventArgs.cs
- XamlReaderHelper.cs
- DiscoveryClientChannelFactory.cs
- TypeUnloadedException.cs
- TemplateNodeContextMenu.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- DataRelationPropertyDescriptor.cs
- DataGridViewCellCancelEventArgs.cs
- PartitionedDataSource.cs
- ConditionalAttribute.cs
- SByte.cs
- CodeExporter.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- WebPartZone.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- PanelStyle.cs
- InfiniteTimeSpanConverter.cs
- BinaryParser.cs
- DataServiceProviderMethods.cs
- HitTestParameters.cs
- regiisutil.cs
- RequestCachePolicyConverter.cs
- ConfigXmlElement.cs
- PageContent.cs
- HideDisabledControlAdapter.cs
- TraceRecord.cs
- NameService.cs
- FieldToken.cs
- TextElementEnumerator.cs
- NativeMethods.cs
- FrameworkPropertyMetadata.cs
- Base64Encoder.cs
- MessageLoggingFilterTraceRecord.cs
- ErrorFormatterPage.cs
- RuleAction.cs
- MtomMessageEncoder.cs
- CapabilitiesUse.cs
- XmlSignatureProperties.cs
- IOThreadTimer.cs
- ConfigurationValidatorAttribute.cs
- ProxyWebPartConnectionCollection.cs
- Point.cs
- GregorianCalendar.cs
- TextRangeEditLists.cs
- SelectionRangeConverter.cs
- XmlChoiceIdentifierAttribute.cs
- NameValuePair.cs
- IncrementalHitTester.cs
- DataChangedEventManager.cs
- SqlRetyper.cs
- BoundingRectTracker.cs