Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- BindingCollection.cs
- control.ime.cs
- PolyBezierSegment.cs
- CacheEntry.cs
- NameObjectCollectionBase.cs
- ProxySimple.cs
- Int32Rect.cs
- DocumentPageView.cs
- HttpRequestCacheValidator.cs
- ListManagerBindingsCollection.cs
- GraphicsPath.cs
- WebBrowserBase.cs
- CrossContextChannel.cs
- ParamArrayAttribute.cs
- OleAutBinder.cs
- DbMetaDataFactory.cs
- Configuration.cs
- QueryOutputWriterV1.cs
- CacheSection.cs
- CrossAppDomainChannel.cs
- ConfigurationManagerHelperFactory.cs
- PersistenceMetadataNamespace.cs
- ReplacementText.cs
- EnvironmentPermission.cs
- baseaxisquery.cs
- TableStyle.cs
- CheckBoxPopupAdapter.cs
- _CommandStream.cs
- ComponentDispatcherThread.cs
- RegexCharClass.cs
- GPRECTF.cs
- UpdateDelegates.Generated.cs
- QueryGenerator.cs
- ZipIOLocalFileDataDescriptor.cs
- NotCondition.cs
- Parallel.cs
- MailSettingsSection.cs
- StandardCommands.cs
- Calendar.cs
- DbReferenceCollection.cs
- ProtocolViolationException.cs
- FlowDocumentPage.cs
- OutputCacheSettingsSection.cs
- DrawingImage.cs
- TextEditorLists.cs
- GridViewRowPresenter.cs
- VariableAction.cs
- SynchronizedReadOnlyCollection.cs
- EnumBuilder.cs
- FontFaceLayoutInfo.cs
- XmlILTrace.cs
- WebResourceAttribute.cs
- Win32MouseDevice.cs
- WebCategoryAttribute.cs
- Vector.cs
- HttpSessionStateBase.cs
- ImageMapEventArgs.cs
- COM2TypeInfoProcessor.cs
- CategoriesDocumentFormatter.cs
- SafeNativeMemoryHandle.cs
- RoleGroup.cs
- SqlProcedureAttribute.cs
- UntypedNullExpression.cs
- Listbox.cs
- MetabaseServerConfig.cs
- ObjectMemberMapping.cs
- SystemEvents.cs
- TextServicesContext.cs
- HwndHost.cs
- HttpServerUtilityWrapper.cs
- XmlStreamStore.cs
- TextTreeInsertElementUndoUnit.cs
- XmlImplementation.cs
- Decimal.cs
- NavigationService.cs
- UIElementHelper.cs
- _IPv6Address.cs
- InitiatorSessionSymmetricTransportSecurityProtocol.cs
- SmiSettersStream.cs
- SvcMapFileLoader.cs
- SafePEFileHandle.cs
- StructuredProperty.cs
- UmAlQuraCalendar.cs
- BamlResourceDeserializer.cs
- FileSystemInfo.cs
- StartFileNameEditor.cs
- listviewsubitemcollectioneditor.cs
- NameTable.cs
- Wizard.cs
- OperationCanceledException.cs
- CustomErrorsSection.cs
- ExecutionContext.cs
- OrderedDictionary.cs
- FontResourceCache.cs
- SettingsProviderCollection.cs
- QueryResponse.cs
- DiscoveryClientOutputChannel.cs
- HtmlInputSubmit.cs
- TagMapCollection.cs
- KeyEventArgs.cs