Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / SmtpNtlmAuthenticationModule.cs / 1305376 / SmtpNtlmAuthenticationModule.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 SmtpNtlmAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpNtlmAuthenticationModule() { } #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) { if(Logging.On)Logging.Enter(Logging.Web, this, "Authenticate", null); try { 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, "Ntlm", 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); } } } finally { if(Logging.On)Logging.Exit(Logging.Web, this, "Authenticate", null); } } public string AuthenticationType { get { return "ntlm"; } } 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 SmtpNtlmAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpNtlmAuthenticationModule() { } #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) { if(Logging.On)Logging.Enter(Logging.Web, this, "Authenticate", null); try { 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, "Ntlm", 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); } } } finally { if(Logging.On)Logging.Exit(Logging.Web, this, "Authenticate", null); } } public string AuthenticationType { get { return "ntlm"; } } 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextEffect.cs
- FixedSOMTableCell.cs
- TextEndOfLine.cs
- Terminate.cs
- X509AudioLogo.cs
- SourceElementsCollection.cs
- LifetimeServices.cs
- ColumnMapVisitor.cs
- WebPart.cs
- SiteMap.cs
- GacUtil.cs
- RemotingConfiguration.cs
- BitmapCacheBrush.cs
- ProxyWebPartConnectionCollection.cs
- objectquery_tresulttype.cs
- ValidatorUtils.cs
- CriticalFinalizerObject.cs
- RequiredFieldValidator.cs
- EntityContainerEntitySet.cs
- DefaultTextStoreTextComposition.cs
- RemotingHelper.cs
- DiagnosticTraceRecords.cs
- CommandTreeTypeHelper.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- OverrideMode.cs
- SymLanguageVendor.cs
- HostProtectionException.cs
- MessageDroppedTraceRecord.cs
- BackoffTimeoutHelper.cs
- UniqueIdentifierService.cs
- SendOperation.cs
- BindingCollection.cs
- UpWmlPageAdapter.cs
- IIS7WorkerRequest.cs
- XmlRawWriter.cs
- PageSettings.cs
- LinearKeyFrames.cs
- CategoryNameCollection.cs
- WindowsListViewGroupHelper.cs
- MergePropertyDescriptor.cs
- StrokeRenderer.cs
- Binding.cs
- RuntimeConfigLKG.cs
- XmlChoiceIdentifierAttribute.cs
- DataGridViewSelectedCellCollection.cs
- DebuggerAttributes.cs
- brushes.cs
- CursorInteropHelper.cs
- ExtendedPropertyDescriptor.cs
- CodeRemoveEventStatement.cs
- CloudCollection.cs
- BindingValueChangedEventArgs.cs
- Collection.cs
- ForceCopyBuildProvider.cs
- GradientBrush.cs
- FormsAuthenticationUserCollection.cs
- ToolboxDataAttribute.cs
- UnsafeNativeMethods.cs
- ToolStripItemImageRenderEventArgs.cs
- KeyValueConfigurationCollection.cs
- FormViewCommandEventArgs.cs
- SubpageParaClient.cs
- RequestCache.cs
- UpdateCommand.cs
- ExpressionNode.cs
- MulticastDelegate.cs
- SmiContextFactory.cs
- RowParagraph.cs
- Size.cs
- IPipelineRuntime.cs
- SafeNativeMethods.cs
- ServiceReference.cs
- XmlValueConverter.cs
- _CommandStream.cs
- UnhandledExceptionEventArgs.cs
- ExtendedProperty.cs
- ReadOnlyDictionary.cs
- DataControlFieldCell.cs
- FontTypeConverter.cs
- SqlExpander.cs
- KeyValueSerializer.cs
- PropertyPanel.cs
- RuntimeConfigLKG.cs
- PageAsyncTask.cs
- HMAC.cs
- selecteditemcollection.cs
- EntityTypeBase.cs
- ApplicationContext.cs
- DataServiceKeyAttribute.cs
- WebControlParameterProxy.cs
- ServiceModelActivity.cs
- PixelShader.cs
- StorageMappingItemLoader.cs
- DataGridTable.cs
- ParallelTimeline.cs
- XPathPatternBuilder.cs
- COM2ExtendedTypeConverter.cs
- SourceItem.cs
- TransactionManagerProxy.cs
- WebPartZoneBase.cs