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
- XmlDataSourceNodeDescriptor.cs
- ScriptServiceAttribute.cs
- DateTimeOffset.cs
- StoreItemCollection.Loader.cs
- OneOf.cs
- DesignerDataSchemaClass.cs
- LocatorGroup.cs
- CacheChildrenQuery.cs
- MouseEvent.cs
- DataSvcMapFile.cs
- HttpProfileGroupBase.cs
- XmlValidatingReaderImpl.cs
- InfoCard.cs
- TraceUtility.cs
- OdbcConnectionOpen.cs
- ExpressionWriter.cs
- EditorZone.cs
- controlskin.cs
- XMLSyntaxException.cs
- recordstate.cs
- ListView.cs
- SynchronizedReadOnlyCollection.cs
- GridPattern.cs
- StreamReader.cs
- WebCategoryAttribute.cs
- ParameterBuilder.cs
- TabControlAutomationPeer.cs
- XmlIterators.cs
- GridViewSortEventArgs.cs
- ScriptControlManager.cs
- ActiveDocumentEvent.cs
- MailBnfHelper.cs
- DesignTimeTemplateParser.cs
- XamlBrushSerializer.cs
- ModelVisual3D.cs
- XmlNodeReader.cs
- HideDisabledControlAdapter.cs
- PixelFormats.cs
- GenericTextProperties.cs
- WsatConfiguration.cs
- DependencyPropertyHelper.cs
- UIElement.cs
- XmlQueryContext.cs
- BlockUIContainer.cs
- PeerApplicationLaunchInfo.cs
- WithParamAction.cs
- RawMouseInputReport.cs
- DataGridItemAttachedStorage.cs
- PopupEventArgs.cs
- Typeface.cs
- ElementProxy.cs
- WebPartDescription.cs
- ColorTransformHelper.cs
- SerializationFieldInfo.cs
- ProxyWebPartManager.cs
- _emptywebproxy.cs
- ExpressionLexer.cs
- WebPartAuthorizationEventArgs.cs
- CompositeFontInfo.cs
- DefaultTextStore.cs
- RegexWorker.cs
- NumericExpr.cs
- CallbackTimeoutsBehavior.cs
- GorillaCodec.cs
- PersonalizableAttribute.cs
- SharedRuntimeState.cs
- XmlSchemaRedefine.cs
- ExpressionCopier.cs
- CmsUtils.cs
- SoapTypeAttribute.cs
- Encoding.cs
- WebConfigurationHostFileChange.cs
- MediaElementAutomationPeer.cs
- EventHandlersStore.cs
- CreateDataSourceDialog.cs
- Dispatcher.cs
- SqlParameter.cs
- ToolStripStatusLabel.cs
- MergeFailedEvent.cs
- VBCodeProvider.cs
- CommandValueSerializer.cs
- SystemNetHelpers.cs
- DirectoryObjectSecurity.cs
- WmpBitmapDecoder.cs
- ConfigurationException.cs
- ReflectTypeDescriptionProvider.cs
- Int16Converter.cs
- _AuthenticationState.cs
- DependencyPropertyHelper.cs
- BulletedListEventArgs.cs
- SendMailErrorEventArgs.cs
- FormViewUpdateEventArgs.cs
- UIElementAutomationPeer.cs
- IdentityNotMappedException.cs
- GridViewRowPresenter.cs
- StateWorkerRequest.cs
- WindowsRebar.cs
- PageHandlerFactory.cs
- AudioLevelUpdatedEventArgs.cs
- WindowsAuthenticationModule.cs