Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / Mail / SmtpNtlmAuthenticationModule.cs / 1 / 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; // #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) { 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,null,ContextFlags.Connection); } string resp = (challenge != null ? clientContext.GetOutgoingBlob(challenge) : clientContext.GetOutgoingBlob(null)); 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; // #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) { 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,null,ContextFlags.Connection); } string resp = (challenge != null ? clientContext.GetOutgoingBlob(challenge) : clientContext.GetOutgoingBlob(null)); 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
- TextEditorSpelling.cs
- SqlBooleanizer.cs
- AssociationType.cs
- XhtmlConformanceSection.cs
- GeometryDrawing.cs
- DeviceContext2.cs
- CompilerGeneratedAttribute.cs
- TranslateTransform.cs
- UserControl.cs
- ListItemCollection.cs
- SqlFactory.cs
- Base64Encoder.cs
- FrameworkElement.cs
- HtmlTitle.cs
- PixelFormatConverter.cs
- AutomationIdentifier.cs
- RegexMatch.cs
- SystemDiagnosticsSection.cs
- ProgressiveCrcCalculatingStream.cs
- ActivationServices.cs
- ColumnMapCopier.cs
- ResourceReferenceKeyNotFoundException.cs
- StringUtil.cs
- EmptyControlCollection.cs
- FileDialogCustomPlace.cs
- XXXInfos.cs
- EnumValAlphaComparer.cs
- OdbcParameter.cs
- EndpointFilterProvider.cs
- ValidatorUtils.cs
- SafeNativeMethods.cs
- CultureSpecificStringDictionary.cs
- Privilege.cs
- StaticSiteMapProvider.cs
- XmlSchemaExternal.cs
- BlockUIContainer.cs
- AuthStoreRoleProvider.cs
- FieldAccessException.cs
- MatrixTransform3D.cs
- ProtocolsConfiguration.cs
- StorageMappingItemLoader.cs
- ValidateNames.cs
- StylusEventArgs.cs
- cookieexception.cs
- XmlMembersMapping.cs
- FileDetails.cs
- Command.cs
- EncryptedType.cs
- XsltLibrary.cs
- CheckoutException.cs
- DataComponentMethodGenerator.cs
- AuthenticationException.cs
- FileChangesMonitor.cs
- DictionaryBase.cs
- RijndaelCryptoServiceProvider.cs
- CatalogPartChrome.cs
- Preprocessor.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- SystemIPv6InterfaceProperties.cs
- DateTimePicker.cs
- MonthChangedEventArgs.cs
- OutOfProcStateClientManager.cs
- UrlPropertyAttribute.cs
- ToolStripPanel.cs
- Track.cs
- WebPartsSection.cs
- StorageAssociationTypeMapping.cs
- Double.cs
- HostingEnvironmentWrapper.cs
- SessionStateSection.cs
- Button.cs
- HttpCachePolicy.cs
- RuntimeConfigLKG.cs
- HtmlControl.cs
- EdmToObjectNamespaceMap.cs
- localization.cs
- CharConverter.cs
- AccessControlList.cs
- PrintController.cs
- MD5CryptoServiceProvider.cs
- DataGridViewDesigner.cs
- XmlSchemaSimpleContent.cs
- DataRecord.cs
- InvalidAsynchronousStateException.cs
- BinaryMessageFormatter.cs
- RegexReplacement.cs
- WebConfigurationManager.cs
- CheckedPointers.cs
- ExtenderControl.cs
- Label.cs
- Helper.cs
- VsPropertyGrid.cs
- FlowDocumentScrollViewer.cs
- PermissionSet.cs
- SmiEventSink_Default.cs
- CodeDomDecompiler.cs
- WmlFormAdapter.cs
- UserPersonalizationStateInfo.cs
- ContainerVisual.cs
- FileStream.cs