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
- ConfigXmlCDataSection.cs
- TemplatePartAttribute.cs
- DataSourceView.cs
- InputScopeAttribute.cs
- RoutedEventConverter.cs
- TcpClientSocketManager.cs
- MultipleCopiesCollection.cs
- FrameworkElement.cs
- TextEditorTables.cs
- PolicyStatement.cs
- VScrollBar.cs
- EditingMode.cs
- TrackingRecordPreFilter.cs
- ClientTargetSection.cs
- Preprocessor.cs
- MailWriter.cs
- PathGeometry.cs
- BidOverLoads.cs
- Journaling.cs
- MetabaseServerConfig.cs
- TextRenderer.cs
- SettingsAttributes.cs
- ProfilePropertyNameValidator.cs
- ConnectorDragDropGlyph.cs
- GeneralTransform3D.cs
- ProfileEventArgs.cs
- TemplateNameScope.cs
- PersonalizationStateInfoCollection.cs
- XmlReflectionMember.cs
- MemberPathMap.cs
- XPathSingletonIterator.cs
- CodeTypeMemberCollection.cs
- sqlinternaltransaction.cs
- RenderDataDrawingContext.cs
- StringStorage.cs
- SerializationObjectManager.cs
- HexParser.cs
- WebConfigurationManager.cs
- SRef.cs
- XMLUtil.cs
- EntryWrittenEventArgs.cs
- DrawingGroupDrawingContext.cs
- PersonalizablePropertyEntry.cs
- ToolStripSplitStackLayout.cs
- PageCache.cs
- DataListAutoFormat.cs
- Package.cs
- Compensation.cs
- SizeKeyFrameCollection.cs
- FunctionUpdateCommand.cs
- ClientScriptItem.cs
- AutoGeneratedFieldProperties.cs
- DocumentPage.cs
- XmlTypeAttribute.cs
- ResourceCodeDomSerializer.cs
- SpellerError.cs
- HideDisabledControlAdapter.cs
- DataServiceProcessingPipelineEventArgs.cs
- CloseCollectionAsyncResult.cs
- CurrentTimeZone.cs
- EntityTypeEmitter.cs
- XmlSchemaException.cs
- SizeFConverter.cs
- BypassElement.cs
- ThemeDictionaryExtension.cs
- SqlInternalConnectionSmi.cs
- HttpVersion.cs
- DocumentReference.cs
- MutexSecurity.cs
- ToolStripRenderer.cs
- CommandID.cs
- HashSetEqualityComparer.cs
- GPStream.cs
- HttpConfigurationSystem.cs
- AnchoredBlock.cs
- TaskExceptionHolder.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ProxySimple.cs
- PageParserFilter.cs
- COM2FontConverter.cs
- UnsafeNativeMethodsPenimc.cs
- QueryRewriter.cs
- EditorAttributeInfo.cs
- SectionInput.cs
- keycontainerpermission.cs
- EarlyBoundInfo.cs
- SystemSounds.cs
- GroupDescription.cs
- util.cs
- VersionedStream.cs
- GenerateHelper.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- HtmlInputText.cs
- HasCopySemanticsAttribute.cs
- MethodRental.cs
- CacheModeConverter.cs
- OleDbRowUpdatedEvent.cs
- TimeSpanSecondsConverter.cs
- ProxySimple.cs
- JsonReaderWriterFactory.cs