Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BindingManagerDataErrorEventArgs.cs
- MenuItemBindingCollection.cs
- Scanner.cs
- bindurihelper.cs
- ToolStripHighContrastRenderer.cs
- ListViewInsertEventArgs.cs
- ProfileSettings.cs
- COMException.cs
- SiteMap.cs
- PartialCachingAttribute.cs
- TypeToken.cs
- TypeValidationEventArgs.cs
- GorillaCodec.cs
- SHA1.cs
- ReadOnlyDictionary.cs
- WebServiceHandler.cs
- DataGridTableCollection.cs
- OutputCacheEntry.cs
- LabelAutomationPeer.cs
- _LocalDataStoreMgr.cs
- ConfigXmlWhitespace.cs
- _ListenerResponseStream.cs
- SqlDataSourceEnumerator.cs
- LocalizableAttribute.cs
- GroupJoinQueryOperator.cs
- ValidationErrorCollection.cs
- DesignerContextDescriptor.cs
- CodeObject.cs
- ReservationCollection.cs
- XpsS0ValidatingLoader.cs
- InstanceLockQueryResult.cs
- SizeLimitedCache.cs
- WebContentFormatHelper.cs
- LingerOption.cs
- RowSpanVector.cs
- AttributeTableBuilder.cs
- Button.cs
- LambdaExpression.cs
- ChangeBlockUndoRecord.cs
- LogFlushAsyncResult.cs
- ConfigUtil.cs
- SymLanguageType.cs
- exports.cs
- DbProviderFactories.cs
- CodeAccessSecurityEngine.cs
- AmbientValueAttribute.cs
- ClientSideQueueItem.cs
- XmlTextReaderImpl.cs
- RadioButtonStandardAdapter.cs
- DataGridViewColumnCollection.cs
- ListViewUpdatedEventArgs.cs
- ListBase.cs
- SmtpMail.cs
- NamedObjectList.cs
- MailDefinition.cs
- PageRanges.cs
- TiffBitmapDecoder.cs
- ExplicitDiscriminatorMap.cs
- SynchronizedDispatch.cs
- NativeWindow.cs
- DrawingContextWalker.cs
- DataSourceXmlSerializationAttribute.cs
- XmlWrappingReader.cs
- StatusBarAutomationPeer.cs
- HttpCacheParams.cs
- LicenseContext.cs
- ToolStripPanelCell.cs
- recordstatescratchpad.cs
- ItemCollection.cs
- HtmlTableCellCollection.cs
- ControlBuilderAttribute.cs
- DefaultParameterValueAttribute.cs
- MouseBinding.cs
- UnionCodeGroup.cs
- DataGridTextColumn.cs
- ContentDefinition.cs
- ObjectFullSpanRewriter.cs
- FillRuleValidation.cs
- HostedHttpContext.cs
- OnOperation.cs
- IgnoreFileBuildProvider.cs
- QueryReaderSettings.cs
- FieldMetadata.cs
- SortAction.cs
- MatrixIndependentAnimationStorage.cs
- QueryGeneratorBase.cs
- PropertyChangedEventManager.cs
- NameValueSectionHandler.cs
- ComboBoxRenderer.cs
- DataServiceRequestOfT.cs
- LinkArea.cs
- AmbiguousMatchException.cs
- ActivityInterfaces.cs
- AnnotationResourceChangedEventArgs.cs
- CompositeDataBoundControl.cs
- ValueChangedEventManager.cs
- CodeTypeConstructor.cs
- ServiceInfoCollection.cs
- HttpWebRequest.cs
- WindowsStatic.cs