Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / Mail / SmtpDigestAuthenticationModule.cs / 1 / 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
- HashHelper.cs
- TiffBitmapDecoder.cs
- CodeMemberMethod.cs
- HashMembershipCondition.cs
- PaintEvent.cs
- TreeNodeCollection.cs
- SqlDesignerDataSourceView.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- BridgeDataRecord.cs
- DbConnectionInternal.cs
- Variable.cs
- ChangesetResponse.cs
- ReadOnlyHierarchicalDataSource.cs
- rsa.cs
- RotateTransform.cs
- StateItem.cs
- NamedPipeAppDomainProtocolHandler.cs
- Scheduler.cs
- XmlQueryContext.cs
- StatusStrip.cs
- CookieProtection.cs
- FormsAuthenticationConfiguration.cs
- FatalException.cs
- CqlErrorHelper.cs
- PageParser.cs
- FileLevelControlBuilderAttribute.cs
- TraceListeners.cs
- LightweightEntityWrapper.cs
- ComplexBindingPropertiesAttribute.cs
- DockAndAnchorLayout.cs
- ThreadSafeList.cs
- ScriptControl.cs
- NetNamedPipeBindingElement.cs
- TableParaClient.cs
- SettingsAttributeDictionary.cs
- SchemaNames.cs
- SqlUdtInfo.cs
- Separator.cs
- UTF32Encoding.cs
- SparseMemoryStream.cs
- WmlPhoneCallAdapter.cs
- NativeCompoundFileAPIs.cs
- CodePageUtils.cs
- _ContextAwareResult.cs
- Visitors.cs
- Memoizer.cs
- OdbcConnectionStringbuilder.cs
- GeneralTransform3DCollection.cs
- StrokeFIndices.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- XPathDescendantIterator.cs
- DocumentPaginator.cs
- FieldNameLookup.cs
- precedingquery.cs
- XmlWrappingReader.cs
- MessageQueueKey.cs
- HttpCookiesSection.cs
- IntSecurity.cs
- MemberDescriptor.cs
- DataTablePropertyDescriptor.cs
- AppearanceEditorPart.cs
- ObjectComplexPropertyMapping.cs
- SerializationFieldInfo.cs
- MdiWindowListStrip.cs
- EntityParameterCollection.cs
- SoapMessage.cs
- ButtonColumn.cs
- CngAlgorithm.cs
- AtomContentProperty.cs
- DataGridViewCellPaintingEventArgs.cs
- VideoDrawing.cs
- HebrewCalendar.cs
- Attachment.cs
- RightsManagementPermission.cs
- MetadataSection.cs
- InputLanguageSource.cs
- ObjectDataSourceEventArgs.cs
- SudsParser.cs
- QuaternionAnimation.cs
- DefinitionBase.cs
- BamlRecordReader.cs
- HtmlTextBoxAdapter.cs
- Native.cs
- LinkedList.cs
- SiteMap.cs
- SerializerProvider.cs
- WorkflowDebuggerSteppingAttribute.cs
- StringTraceRecord.cs
- DeclarativeExpressionConditionDeclaration.cs
- SelectionEditor.cs
- ConfigsHelper.cs
- ReachFixedPageSerializer.cs
- ProfileSettings.cs
- XmlReflectionMember.cs
- SmtpTransport.cs
- CodeDomLocalizationProvider.cs
- SafeFileMappingHandle.cs
- InputProcessorProfilesLoader.cs
- MSAAEventDispatcher.cs
- COM2Properties.cs