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
- CustomUserNameSecurityTokenAuthenticator.cs
- ExtendedPropertyInfo.cs
- Util.cs
- FilterableAttribute.cs
- Single.cs
- ComNativeDescriptor.cs
- RelationshipWrapper.cs
- CrossSiteScriptingValidation.cs
- Matrix3DConverter.cs
- GridItemPattern.cs
- MarginsConverter.cs
- TextEvent.cs
- EntityDataSourceQueryBuilder.cs
- KeyFrames.cs
- Debug.cs
- DrawListViewSubItemEventArgs.cs
- TranslateTransform3D.cs
- WebBrowsableAttribute.cs
- HttpListenerElement.cs
- DialogResultConverter.cs
- ContextConfiguration.cs
- SoapObjectInfo.cs
- SourceFileBuildProvider.cs
- MultipartIdentifier.cs
- RegexWorker.cs
- ToolboxItem.cs
- XslVisitor.cs
- DiscreteKeyFrames.cs
- ButtonDesigner.cs
- ZipIOExtraFieldElement.cs
- XmlStreamStore.cs
- StorageComplexPropertyMapping.cs
- ZipIOExtraField.cs
- FrugalMap.cs
- OdbcParameter.cs
- NumericUpDownAcceleration.cs
- WeakReferenceKey.cs
- WebServiceClientProxyGenerator.cs
- GlyphShapingProperties.cs
- SystemNetHelpers.cs
- Storyboard.cs
- BrowserCapabilitiesFactoryBase.cs
- Mapping.cs
- IPAddress.cs
- NativeObjectSecurity.cs
- TypeLibConverter.cs
- PageParserFilter.cs
- EventProviderClassic.cs
- ParsedAttributeCollection.cs
- ExtendedProperty.cs
- Compiler.cs
- AddressUtility.cs
- ImageBrush.cs
- BaseDataList.cs
- ByeOperationCD1AsyncResult.cs
- DispatcherHooks.cs
- infer.cs
- ObjectCacheSettings.cs
- RightNameExpirationInfoPair.cs
- FixedSOMContainer.cs
- PathSegmentCollection.cs
- XmlKeywords.cs
- TemplatedEditableDesignerRegion.cs
- WpfKnownMemberInvoker.cs
- PrintPreviewControl.cs
- ButtonColumn.cs
- ReadOnlyDataSource.cs
- SqlClientWrapperSmiStream.cs
- ContentElement.cs
- UnionExpr.cs
- RenderContext.cs
- Query.cs
- PlanCompiler.cs
- ContentOperations.cs
- SoapMessage.cs
- SQLInt64Storage.cs
- DtdParser.cs
- ConstNode.cs
- RtfFormatStack.cs
- ECDsaCng.cs
- COM2PropertyPageUITypeConverter.cs
- RawMouseInputReport.cs
- FixUpCollection.cs
- RestHandlerFactory.cs
- MailAddress.cs
- NameSpaceEvent.cs
- KeyConverter.cs
- KeyboardNavigation.cs
- filewebrequest.cs
- IntPtr.cs
- SqlNodeAnnotation.cs
- AttributeSetAction.cs
- WebSysDescriptionAttribute.cs
- RootBuilder.cs
- QilXmlReader.cs
- SqlParameterCollection.cs
- ScriptResourceMapping.cs
- _HeaderInfoTable.cs
- regiisutil.cs
- SystemException.cs