Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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; 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. //------------------------------------------------------------------------------ //// 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
- PropertyValue.cs
- DateTimeValueSerializerContext.cs
- XmlSerializationWriter.cs
- CaseInsensitiveHashCodeProvider.cs
- DelimitedListTraceListener.cs
- WebPartCollection.cs
- MembershipPasswordException.cs
- WpfPayload.cs
- ExtensionDataReader.cs
- Thumb.cs
- SqlNotificationRequest.cs
- ErrorView.xaml.cs
- UInt64Storage.cs
- MimeParameters.cs
- InfoCardBaseException.cs
- COM2ICategorizePropertiesHandler.cs
- StylusButtonEventArgs.cs
- PartBasedPackageProperties.cs
- FontFamilyConverter.cs
- cookiecollection.cs
- SHA384Managed.cs
- GridSplitterAutomationPeer.cs
- NativeMethods.cs
- PointAnimationUsingPath.cs
- DiscoveryRequestHandler.cs
- SchemaCollectionCompiler.cs
- DataGridRowHeader.cs
- DataListItemCollection.cs
- AttachInfo.cs
- IUnknownConstantAttribute.cs
- BackgroundFormatInfo.cs
- OSFeature.cs
- ObjectDataSourceDisposingEventArgs.cs
- securitycriticaldataformultiplegetandset.cs
- CellParagraph.cs
- ListBoxItem.cs
- PageEventArgs.cs
- XslVisitor.cs
- QilScopedVisitor.cs
- RequestCache.cs
- ProxyWebPartManagerDesigner.cs
- HttpRequestBase.cs
- EncoderBestFitFallback.cs
- XmlNamespaceMappingCollection.cs
- GZipDecoder.cs
- DiscoveryOperationContextExtension.cs
- ObjectToken.cs
- dataprotectionpermission.cs
- HotCommands.cs
- ExpressionBindings.cs
- GridLengthConverter.cs
- SimpleModelProvider.cs
- Condition.cs
- MenuItemStyleCollection.cs
- MethodBody.cs
- remotingproxy.cs
- DataTransferEventArgs.cs
- CancellationHandler.cs
- ListViewItemSelectionChangedEvent.cs
- TagNameToTypeMapper.cs
- FontDriver.cs
- COM2ExtendedBrowsingHandler.cs
- DataTemplate.cs
- DeviceContexts.cs
- RangeBaseAutomationPeer.cs
- Popup.cs
- WindowsIdentity.cs
- SourceSwitch.cs
- SiteMapNodeCollection.cs
- XamlTreeBuilderBamlRecordWriter.cs
- ForEachAction.cs
- SetIterators.cs
- MessageContractAttribute.cs
- MSAANativeProvider.cs
- ClientRequest.cs
- SafeEventLogWriteHandle.cs
- DbgUtil.cs
- StatusBarDrawItemEvent.cs
- MobileTemplatedControlDesigner.cs
- SlipBehavior.cs
- ErrorRuntimeConfig.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- Events.cs
- NumericPagerField.cs
- DateTimeFormat.cs
- SqlWebEventProvider.cs
- DictionaryEditChange.cs
- ByteArrayHelperWithString.cs
- PageClientProxyGenerator.cs
- FontUnit.cs
- DropShadowBitmapEffect.cs
- RepeaterItemEventArgs.cs
- ServiceBuildProvider.cs
- GridEntryCollection.cs
- SimpleFieldTemplateFactory.cs
- uribuilder.cs
- Classification.cs
- Transform.cs
- AnnotationHelper.cs
- GridEntry.cs