Code:
/ FX-1434 / FX-1434 / 1.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
- FileEnumerator.cs
- CryptoHelper.cs
- KoreanLunisolarCalendar.cs
- _ListenerAsyncResult.cs
- SimpleBitVector32.cs
- ActiveXHost.cs
- OpCopier.cs
- FilteredXmlReader.cs
- AutomationElementCollection.cs
- SelectionHighlightInfo.cs
- SpellerError.cs
- ExpressionConverter.cs
- FormViewDeleteEventArgs.cs
- EntityReference.cs
- ThemeableAttribute.cs
- PartialCachingControl.cs
- ComplexTypeEmitter.cs
- DrawingAttributeSerializer.cs
- shaperfactory.cs
- OptimizerPatterns.cs
- XamlTreeBuilderBamlRecordWriter.cs
- Timeline.cs
- MetaModel.cs
- PagesSection.cs
- TextEncodedRawTextWriter.cs
- BindingSource.cs
- Material.cs
- FormatSelectingMessageInspector.cs
- ObjectIDGenerator.cs
- DropShadowBitmapEffect.cs
- DescriptionCreator.cs
- PropertyOverridesTypeEditor.cs
- IteratorAsyncResult.cs
- EllipseGeometry.cs
- DataGridCellItemAutomationPeer.cs
- WebPartEditorApplyVerb.cs
- XPathChildIterator.cs
- Signature.cs
- FormParameter.cs
- DeclarativeExpressionConditionDeclaration.cs
- StyleCollectionEditor.cs
- Normalizer.cs
- DBBindings.cs
- regiisutil.cs
- ReceiveReply.cs
- StringToken.cs
- Transform3DCollection.cs
- EnglishPluralizationService.cs
- HttpClientCertificate.cs
- HandlerBase.cs
- IpcManager.cs
- DeleteMemberBinder.cs
- SqlTriggerAttribute.cs
- RadioButtonPopupAdapter.cs
- SessionState.cs
- ListSortDescription.cs
- AlphabeticalEnumConverter.cs
- ApplicationFileCodeDomTreeGenerator.cs
- LambdaCompiler.Expressions.cs
- CustomSignedXml.cs
- DictionaryContent.cs
- DeferredReference.cs
- DataPagerFieldCommandEventArgs.cs
- SerializationFieldInfo.cs
- PipelineModuleStepContainer.cs
- FacetValues.cs
- DocumentXPathNavigator.cs
- XmlTextAttribute.cs
- TextParagraphCache.cs
- PrintDialog.cs
- CriticalFinalizerObject.cs
- LogEntryHeaderSerializer.cs
- CultureInfo.cs
- HandlerFactoryCache.cs
- GPPOINTF.cs
- FlowchartDesigner.xaml.cs
- ToolStripDropDownMenu.cs
- UnsafeNativeMethods.cs
- CustomCredentialPolicy.cs
- CryptoProvider.cs
- ToolStripSeparatorRenderEventArgs.cs
- ReturnValue.cs
- Stackframe.cs
- NullableConverter.cs
- FontClient.cs
- GPRECT.cs
- MessageDirection.cs
- BordersPage.cs
- EndpointIdentity.cs
- TablePatternIdentifiers.cs
- HtmlLinkAdapter.cs
- ProfileModule.cs
- IISUnsafeMethods.cs
- DbXmlEnabledProviderManifest.cs
- IsolatedStoragePermission.cs
- PackageRelationshipCollection.cs
- ObjectItemCollection.cs
- SystemColors.cs
- SymbolEqualComparer.cs
- TypeListConverter.cs