Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / SmtpDigestAuthenticationModule.cs / 1305376 / 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;
using System.Security.Authentication.ExtendedProtection;
//
#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, string spn, ChannelBinding channelBindingToken)
{
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, 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);
}
}
}
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;
using System.Security.Authentication.ExtendedProtection;
//
#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, string spn, ChannelBinding channelBindingToken)
{
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, 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);
}
}
}
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
- Helper.cs
- StandardRuntimeEnumValidator.cs
- CallbackDebugBehavior.cs
- ItemCollection.cs
- TCPClient.cs
- PerformanceCountersElement.cs
- DoubleSumAggregationOperator.cs
- ParallelQuery.cs
- SpeakCompletedEventArgs.cs
- AutoResizedEvent.cs
- DropSourceBehavior.cs
- ReflectionUtil.cs
- PointUtil.cs
- Size3D.cs
- SelectionGlyph.cs
- Fx.cs
- SiteOfOriginContainer.cs
- DoubleIndependentAnimationStorage.cs
- CompilerScopeManager.cs
- RegisteredDisposeScript.cs
- PathSegmentCollection.cs
- UniqueConstraint.cs
- Button.cs
- _KerberosClient.cs
- ClientTargetCollection.cs
- KerberosRequestorSecurityToken.cs
- ImageAnimator.cs
- WebPartCollection.cs
- PartitionerStatic.cs
- SchemaCollectionCompiler.cs
- MaskedTextBoxTextEditorDropDown.cs
- ADRoleFactory.cs
- xdrvalidator.cs
- FixedSOMElement.cs
- LinkedResource.cs
- RightsManagementEncryptionTransform.cs
- HttpModulesInstallComponent.cs
- Base64Stream.cs
- InvalidDataException.cs
- OSEnvironmentHelper.cs
- ProcessHostConfigUtils.cs
- WebPartUtil.cs
- FormatVersion.cs
- SmiMetaData.cs
- ScrollProviderWrapper.cs
- BindingsCollection.cs
- BufferedGraphicsManager.cs
- LinearGradientBrush.cs
- XmlSchemaSequence.cs
- StreamedFramingRequestChannel.cs
- diagnosticsswitches.cs
- SQLInt64.cs
- MemoryPressure.cs
- AttributeUsageAttribute.cs
- PrefixHandle.cs
- CallbackValidator.cs
- FloaterBaseParaClient.cs
- ComNativeDescriptor.cs
- MultiByteCodec.cs
- ComponentChangingEvent.cs
- ZipIORawDataFileBlock.cs
- TraceEventCache.cs
- NoPersistProperty.cs
- AspNetHostingPermission.cs
- FormViewUpdateEventArgs.cs
- ScrollContentPresenter.cs
- GlobalizationSection.cs
- LogReservationCollection.cs
- UnsafePeerToPeerMethods.cs
- SystemNetHelpers.cs
- ListDependantCardsRequest.cs
- SingleAnimation.cs
- Object.cs
- MultilineStringConverter.cs
- DataSourceGroupCollection.cs
- StandardCommandToolStripMenuItem.cs
- MediaEntryAttribute.cs
- RC2.cs
- RegexGroup.cs
- HostVisual.cs
- GlobalItem.cs
- WorkflowRuntimeServiceElementCollection.cs
- MruCache.cs
- SafeEventLogWriteHandle.cs
- CatalogZoneAutoFormat.cs
- SQLInt32Storage.cs
- ModelPerspective.cs
- PropertyItem.cs
- PresentationSource.cs
- SqlProcedureAttribute.cs
- XmlReaderSettings.cs
- XmlWrappingWriter.cs
- SqlIdentifier.cs
- Grant.cs
- MethodBuilderInstantiation.cs
- UndoManager.cs
- UIElement.cs
- TraceRecord.cs
- QueueTransferProtocol.cs
- ToolStripStatusLabel.cs