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
- ErrorEventArgs.cs
- PropertyChangeTracker.cs
- HttpProcessUtility.cs
- DeferrableContentConverter.cs
- TemplatePartAttribute.cs
- Rule.cs
- InvalidDataContractException.cs
- WriteLine.cs
- DynamicILGenerator.cs
- OdbcConnectionPoolProviderInfo.cs
- NegatedConstant.cs
- CustomBindingElementCollection.cs
- StorageAssociationSetMapping.cs
- DbProviderManifest.cs
- FormatConvertedBitmap.cs
- JsonQNameDataContract.cs
- Control.cs
- IsolationInterop.cs
- DocumentEventArgs.cs
- StylusPlugInCollection.cs
- OpCodes.cs
- ParameterBuilder.cs
- MetadataSource.cs
- DictionarySurrogate.cs
- IBuiltInEvidence.cs
- UserPreferenceChangingEventArgs.cs
- QuaternionAnimation.cs
- QilInvoke.cs
- SyntaxCheck.cs
- dtdvalidator.cs
- XamlInterfaces.cs
- DoubleCollectionConverter.cs
- ListViewItemSelectionChangedEvent.cs
- ValidationEventArgs.cs
- ArgumentsParser.cs
- TextBoxRenderer.cs
- DataListItem.cs
- TextFormatterHost.cs
- ExpressionBinding.cs
- FormViewUpdatedEventArgs.cs
- ScriptComponentDescriptor.cs
- UIElement.cs
- DoubleLinkListEnumerator.cs
- FunctionQuery.cs
- securitycriticaldataClass.cs
- MemberAccessException.cs
- ScrollData.cs
- ConnectionStringsSection.cs
- ListViewCommandEventArgs.cs
- SortQueryOperator.cs
- ToolStripSeparator.cs
- RegexCode.cs
- TraceHandlerErrorFormatter.cs
- XmlQueryOutput.cs
- LiteralDesigner.cs
- WindowsListViewScroll.cs
- WindowsFormsLinkLabel.cs
- IdnElement.cs
- ClientSettingsStore.cs
- IgnoreSectionHandler.cs
- Section.cs
- ProfessionalColors.cs
- AssociationSetMetadata.cs
- BamlLocalizer.cs
- ChannelManager.cs
- DrawTreeNodeEventArgs.cs
- DesignBindingPropertyDescriptor.cs
- FileInfo.cs
- XmlBinaryWriter.cs
- MimeTypePropertyAttribute.cs
- SafeNativeMethods.cs
- TypeHelper.cs
- GroupBoxRenderer.cs
- FlagsAttribute.cs
- AddressAccessDeniedException.cs
- FixedHighlight.cs
- DataServiceHost.cs
- ProfileEventArgs.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- WindowsListViewGroupHelper.cs
- DictionaryItemsCollection.cs
- ItemList.cs
- UriParserTemplates.cs
- Repeater.cs
- TextWriterTraceListener.cs
- ConfigurationSectionCollection.cs
- BrowserTree.cs
- RoleManagerModule.cs
- Menu.cs
- MessagePropertyAttribute.cs
- InteropEnvironment.cs
- BinaryObjectReader.cs
- UnauthorizedAccessException.cs
- RealizationContext.cs
- ScriptHandlerFactory.cs
- WebException.cs
- NetworkInformationPermission.cs
- CacheEntry.cs
- HtmlControl.cs
- ObjectResult.cs