Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / Mail / SmtpNtlmAuthenticationModule.cs / 2 / 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 } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DbParameterHelper.cs
- CodeBlockBuilder.cs
- PiiTraceSource.cs
- MatcherBuilder.cs
- RawStylusInputReport.cs
- SystemIPv6InterfaceProperties.cs
- RuleDefinitions.cs
- NativeWindow.cs
- BaseDataList.cs
- XPathPatternBuilder.cs
- DeflateEmulationStream.cs
- HttpContext.cs
- FunctionNode.cs
- WindowsHyperlink.cs
- VariableAction.cs
- SiteMapNodeItemEventArgs.cs
- TypeSystem.cs
- ServiceModelPerformanceCounters.cs
- KeyValuePair.cs
- HttpServerVarsCollection.cs
- OletxTransactionHeader.cs
- UnsafeNativeMethods.cs
- JumpPath.cs
- Underline.cs
- Axis.cs
- Pkcs7Recipient.cs
- EmissiveMaterial.cs
- XmlEntityReference.cs
- EntityDataSourceStatementEditorForm.cs
- SortedDictionary.cs
- QueryCacheKey.cs
- XmlTypeAttribute.cs
- InfocardClientCredentials.cs
- XmlDataLoader.cs
- Manipulation.cs
- ViewUtilities.cs
- OrderByQueryOptionExpression.cs
- AutomationPeer.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- TextContainerHelper.cs
- AnnotationResourceChangedEventArgs.cs
- DynamicDiscoveryDocument.cs
- BuildProvider.cs
- IisTraceListener.cs
- RegexGroupCollection.cs
- CompilerError.cs
- HelpHtmlBuilder.cs
- StubHelpers.cs
- WindowsProgressbar.cs
- KeyedHashAlgorithm.cs
- SignatureToken.cs
- XmlParserContext.cs
- PassportAuthenticationModule.cs
- ContextStaticAttribute.cs
- ByteStreamGeometryContext.cs
- PreloadedPackages.cs
- ReadOnlyAttribute.cs
- Model3DCollection.cs
- KerberosSecurityTokenProvider.cs
- ProfileEventArgs.cs
- WindowsProgressbar.cs
- TagElement.cs
- XmlArrayItemAttributes.cs
- XmlCodeExporter.cs
- ConstructorBuilder.cs
- MonitorWrapper.cs
- LinqDataSourceContextEventArgs.cs
- GenericAuthenticationEventArgs.cs
- IProvider.cs
- CodeArrayCreateExpression.cs
- SimpleRecyclingCache.cs
- GroupBoxDesigner.cs
- ToolStripDesignerAvailabilityAttribute.cs
- ModuleBuilder.cs
- TextDecorationUnitValidation.cs
- XmlSchemaSimpleContentRestriction.cs
- CreateUserWizardStep.cs
- StructuredTypeEmitter.cs
- UInt16Converter.cs
- FlowDocumentReader.cs
- NavigationWindowAutomationPeer.cs
- FlowSwitchLink.cs
- XmlSigningNodeWriter.cs
- ToolStripButton.cs
- Parser.cs
- ProxyWebPartManager.cs
- LeaseManager.cs
- SimpleHandlerFactory.cs
- PeerCollaboration.cs
- InitializationEventAttribute.cs
- DBConnectionString.cs
- Ports.cs
- DockProviderWrapper.cs
- ListViewItem.cs
- ZipPackage.cs
- AccessViolationException.cs
- CachedPathData.cs
- QueryContinueDragEvent.cs
- Lock.cs
- SqlCacheDependency.cs