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
- ReadOnlyDataSource.cs
- HttpListenerException.cs
- CatalogPartChrome.cs
- WebConfigurationFileMap.cs
- ExtenderControl.cs
- SimpleBitVector32.cs
- Operator.cs
- WindowsTokenRoleProvider.cs
- ToolStripButton.cs
- ListViewSortEventArgs.cs
- _ProxyRegBlob.cs
- TransformerInfo.cs
- TextMarkerSource.cs
- ViewValidator.cs
- QuaternionRotation3D.cs
- QueryPageSettingsEventArgs.cs
- MessageQueue.cs
- ImportOptions.cs
- AttachedPropertyBrowsableAttribute.cs
- MsmqInputChannelBase.cs
- OleDbTransaction.cs
- StrokeCollection2.cs
- SqlCacheDependencyDatabaseCollection.cs
- TcpConnectionPoolSettings.cs
- RedBlackList.cs
- ImageField.cs
- JpegBitmapDecoder.cs
- ComponentDispatcherThread.cs
- TextEditorParagraphs.cs
- Rotation3D.cs
- HostingEnvironment.cs
- Metafile.cs
- DataGridViewTextBoxEditingControl.cs
- ClientConfigurationSystem.cs
- ImageCodecInfo.cs
- UniqueIdentifierService.cs
- MatrixKeyFrameCollection.cs
- AbstractExpressions.cs
- MimeMapping.cs
- ByteFacetDescriptionElement.cs
- Attributes.cs
- KnownBoxes.cs
- MetadataExchangeClient.cs
- Converter.cs
- Ops.cs
- SystemSounds.cs
- Help.cs
- IndentedWriter.cs
- ImageMetadata.cs
- CheckBoxBaseAdapter.cs
- ProcessProtocolHandler.cs
- ShowExpandedMultiValueConverter.cs
- IsolationInterop.cs
- ContentElement.cs
- RecognitionResult.cs
- ZipIOExtraFieldPaddingElement.cs
- StyleBamlRecordReader.cs
- Compilation.cs
- RuleSettings.cs
- HttpModuleActionCollection.cs
- PenContexts.cs
- ExceptionRoutedEventArgs.cs
- SerializationInfo.cs
- BigInt.cs
- ConfigXmlElement.cs
- Panel.cs
- XmlSerializerVersionAttribute.cs
- CodeTypeParameterCollection.cs
- ExpressionUtilities.cs
- D3DImage.cs
- DataSourceDescriptorCollection.cs
- MouseGestureValueSerializer.cs
- SystemSounds.cs
- FederatedMessageSecurityOverHttpElement.cs
- AsyncOperationManager.cs
- ResourceManagerWrapper.cs
- RemoteWebConfigurationHost.cs
- MailSettingsSection.cs
- CommandLibraryHelper.cs
- CodeGenerator.cs
- FrameworkElement.cs
- VirtualDirectoryMappingCollection.cs
- RuntimeConfig.cs
- TcpChannelHelper.cs
- ClientSponsor.cs
- SQLChars.cs
- CodeDirectoryCompiler.cs
- BamlLocalizer.cs
- ParameterDataSourceExpression.cs
- UniformGrid.cs
- SqlBulkCopyColumnMappingCollection.cs
- DirectionalLight.cs
- StyleSelector.cs
- DataSetViewSchema.cs
- StrokeDescriptor.cs
- UdpTransportSettings.cs
- GenericPrincipal.cs
- SvcFileManager.cs
- DataBindingCollection.cs
- DirectionalLight.cs