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
- TreeNodeBinding.cs
- SqlDataSourceCommandParser.cs
- TileModeValidation.cs
- validationstate.cs
- RNGCryptoServiceProvider.cs
- ParentQuery.cs
- SqlMetaData.cs
- EntityDataSourceWizardForm.cs
- AutoResizedEvent.cs
- SByte.cs
- webclient.cs
- EventLogInformation.cs
- CompoundFileDeflateTransform.cs
- QueryPageSettingsEventArgs.cs
- VarRefManager.cs
- OAVariantLib.cs
- CategoryValueConverter.cs
- ContractHandle.cs
- GradientStop.cs
- PrimitiveXmlSerializers.cs
- Zone.cs
- ResumeStoryboard.cs
- FastPropertyAccessor.cs
- Padding.cs
- ComponentEditorForm.cs
- DataGridCell.cs
- DateTimeStorage.cs
- MSAAEventDispatcher.cs
- PackagePart.cs
- GifBitmapEncoder.cs
- EncoderParameter.cs
- ListItemCollection.cs
- StrongNamePublicKeyBlob.cs
- loginstatus.cs
- TraceRecord.cs
- DeviceFilterDictionary.cs
- ColorBlend.cs
- NameHandler.cs
- ContextMenu.cs
- DataExpression.cs
- SecondaryViewProvider.cs
- LeftCellWrapper.cs
- CancellationTokenSource.cs
- TextViewBase.cs
- ExpressionList.cs
- RSAOAEPKeyExchangeDeformatter.cs
- WorkflowMessageEventHandler.cs
- XmlUtil.cs
- BaseTemplateParser.cs
- TransformFinalBlockRequest.cs
- AsyncCompletedEventArgs.cs
- BindingBase.cs
- ArgIterator.cs
- TimeSpanConverter.cs
- CharacterBuffer.cs
- TdsParameterSetter.cs
- ConfigXmlElement.cs
- AttributeProviderAttribute.cs
- TCPListener.cs
- ComponentDispatcherThread.cs
- BeginEvent.cs
- XmlSerializationReader.cs
- COM2ComponentEditor.cs
- DataGridViewHitTestInfo.cs
- MouseActionValueSerializer.cs
- DataTablePropertyDescriptor.cs
- MonikerHelper.cs
- EntityContainer.cs
- Pen.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- DbModificationCommandTree.cs
- AvTraceDetails.cs
- MouseActionConverter.cs
- CodeGeneratorOptions.cs
- UnmanagedMemoryStream.cs
- HostProtectionException.cs
- ViewBase.cs
- RepeatButton.cs
- XmlAttributeProperties.cs
- ExpressionEditor.cs
- WebPartHelpVerb.cs
- Control.cs
- _BaseOverlappedAsyncResult.cs
- GridViewCancelEditEventArgs.cs
- DataRowView.cs
- PeerHopCountAttribute.cs
- StateBag.cs
- BitmapEffectInputConnector.cs
- StringUtil.cs
- Registration.cs
- CorrelationKeyCalculator.cs
- SpeechAudioFormatInfo.cs
- VirtualizingPanel.cs
- CodeDelegateInvokeExpression.cs
- Span.cs
- LifetimeServices.cs
- OptimisticConcurrencyException.cs
- NativeStructs.cs
- unsafenativemethodsother.cs
- MenuItem.cs