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 / SmtpDigestAuthenticationModule.cs / 2 / 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
- Translator.cs
- FixedSchema.cs
- GeneralTransform2DTo3D.cs
- SchemaNamespaceManager.cs
- SecurityKeyIdentifier.cs
- BrowserTree.cs
- PrePrepareMethodAttribute.cs
- XNameConverter.cs
- BevelBitmapEffect.cs
- TextEditorCharacters.cs
- DeriveBytes.cs
- OutgoingWebRequestContext.cs
- UnknownBitmapEncoder.cs
- ClientScriptManagerWrapper.cs
- InstanceDataCollectionCollection.cs
- CustomAttributeBuilder.cs
- FontStyles.cs
- CodeActivityMetadata.cs
- IPAddressCollection.cs
- EventDescriptor.cs
- StringUtil.cs
- PeerReferralPolicy.cs
- BindingListCollectionView.cs
- SingleResultAttribute.cs
- RevocationPoint.cs
- CacheAxisQuery.cs
- DesignBinding.cs
- ConfigurationLocationCollection.cs
- SoapDocumentServiceAttribute.cs
- SmiContext.cs
- XamlSerializationHelper.cs
- SizeValueSerializer.cs
- XmlEntityReference.cs
- AutomationPeer.cs
- BezierSegment.cs
- DirectoryNotFoundException.cs
- ExponentialEase.cs
- FormViewDeletedEventArgs.cs
- TransactionChannel.cs
- TabControlAutomationPeer.cs
- WebPartEditorCancelVerb.cs
- XPathNavigator.cs
- AspNetSynchronizationContext.cs
- MulticastOption.cs
- WebPartMenuStyle.cs
- SecurityTokenProvider.cs
- Location.cs
- SystemTcpConnection.cs
- StretchValidation.cs
- WebPartConnectionsEventArgs.cs
- TaskFileService.cs
- ToolStripPanelCell.cs
- FrameworkRichTextComposition.cs
- TraceListeners.cs
- AbstractDataSvcMapFileLoader.cs
- XmlSchemaGroup.cs
- Compilation.cs
- QueryStack.cs
- SecurityContext.cs
- SelectionGlyph.cs
- AncestorChangedEventArgs.cs
- ThaiBuddhistCalendar.cs
- ContextMenuService.cs
- ListDictionary.cs
- IconBitmapDecoder.cs
- ListViewInsertionMark.cs
- InvalidFilterCriteriaException.cs
- GPPOINT.cs
- RightNameExpirationInfoPair.cs
- TextEndOfParagraph.cs
- WebServiceMethodData.cs
- SchemaCollectionPreprocessor.cs
- PrintDialog.cs
- HwndHost.cs
- X509InitiatorCertificateServiceElement.cs
- SafeLibraryHandle.cs
- OdbcStatementHandle.cs
- ToggleProviderWrapper.cs
- PropertyItem.cs
- StructureChangedEventArgs.cs
- Base64Encoder.cs
- HotSpotCollection.cs
- CaseCqlBlock.cs
- XamlInt32CollectionSerializer.cs
- ViewPort3D.cs
- StorageMappingItemLoader.cs
- DataGridViewColumnCollectionEditor.cs
- PreservationFileReader.cs
- ThreadExceptionEvent.cs
- SrgsDocumentParser.cs
- BufferAllocator.cs
- SystemWebSectionGroup.cs
- StructuralCache.cs
- LoginDesigner.cs
- RegionIterator.cs
- SecurityState.cs
- EventWaitHandleSecurity.cs
- SecurityKeyIdentifier.cs
- HtmlEmptyTagControlBuilder.cs
- ExceptionHelpers.cs