Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / Mail / SmtpDigestAuthenticationModule.cs / 5 / SmtpDigestAuthenticationModule.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 SmtpDigestAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpDigestAuthenticationModule() { } #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) { 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,"WDigest",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); } } } public string AuthenticationType { get { return "WDigest"; } } 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; // #if MAKE_MAILCLIENT_PUBLIC internal #else internal #endif class SmtpDigestAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpDigestAuthenticationModule() { } #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) { 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,"WDigest",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); } } } public string AuthenticationType { get { return "WDigest"; } } 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
- WindowsRichEdit.cs
- ControlPropertyNameConverter.cs
- EventlogProvider.cs
- StronglyTypedResourceBuilder.cs
- LocalBuilder.cs
- BindValidator.cs
- _IPv6Address.cs
- oledbmetadatacolumnnames.cs
- HtmlLabelAdapter.cs
- GetPolicyDetailsRequest.cs
- ToolStripDropDownButton.cs
- ContextMenu.cs
- ValueUnavailableException.cs
- EditorPart.cs
- LiteralTextContainerControlBuilder.cs
- CompiledELinqQueryState.cs
- XamlRtfConverter.cs
- VScrollBar.cs
- DrawItemEvent.cs
- FixedSchema.cs
- GeometryModel3D.cs
- MLangCodePageEncoding.cs
- LinkUtilities.cs
- IMembershipProvider.cs
- CodeMemberMethod.cs
- SoapSchemaExporter.cs
- StringFormat.cs
- DescendantOverDescendantQuery.cs
- ColumnBinding.cs
- ExpressionDumper.cs
- CapabilitiesPattern.cs
- BitmapCodecInfoInternal.cs
- SystemDropShadowChrome.cs
- LambdaCompiler.Lambda.cs
- HttpValueCollection.cs
- StylusPointProperty.cs
- CompilerInfo.cs
- SqlConnectionPoolGroupProviderInfo.cs
- GeometryModel3D.cs
- DateRangeEvent.cs
- SectionVisual.cs
- SplitterPanel.cs
- Triplet.cs
- EncoderExceptionFallback.cs
- RSAOAEPKeyExchangeDeformatter.cs
- StatusBar.cs
- FontDriver.cs
- FieldDescriptor.cs
- ArgumentsParser.cs
- StringValueConverter.cs
- PreDigestedSignedInfo.cs
- FormViewDeleteEventArgs.cs
- WebBaseEventKeyComparer.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- PropertyMetadata.cs
- RewritingValidator.cs
- MsmqIntegrationBinding.cs
- BamlLocalizer.cs
- LinqDataSource.cs
- OLEDB_Util.cs
- ChangeProcessor.cs
- CustomAttributeBuilder.cs
- TargetInvocationException.cs
- DataSourceXmlElementAttribute.cs
- CryptoStream.cs
- StretchValidation.cs
- VirtualDirectoryMappingCollection.cs
- MailFileEditor.cs
- ReservationCollection.cs
- ExecutionEngineException.cs
- HttpProxyCredentialType.cs
- OutputCacheSettingsSection.cs
- AssemblyInfo.cs
- Rect3D.cs
- securitycriticaldataformultiplegetandset.cs
- RequiredAttributeAttribute.cs
- EditorBrowsableAttribute.cs
- XmlCharacterData.cs
- AggregateException.cs
- LazyTextWriterCreator.cs
- SqlCacheDependencySection.cs
- XmlNodeChangedEventManager.cs
- Debugger.cs
- PointAnimationUsingKeyFrames.cs
- Button.cs
- SiteMapNode.cs
- WebContext.cs
- LicenseProviderAttribute.cs
- IResourceProvider.cs
- MatrixUtil.cs
- Parameter.cs
- HealthMonitoringSection.cs
- XmlSchemaSimpleContentRestriction.cs
- CodeMemberField.cs
- HttpHandlerAction.cs
- TextServicesProperty.cs
- AutoScrollHelper.cs
- TableHeaderCell.cs
- Privilege.cs
- SmiXetterAccessMap.cs