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
- OpenFileDialog.cs
- LongValidator.cs
- CacheChildrenQuery.cs
- DateTimeConstantAttribute.cs
- NameObjectCollectionBase.cs
- Oci.cs
- DateTimeConverter2.cs
- oledbconnectionstring.cs
- PageTheme.cs
- AppSettingsExpressionBuilder.cs
- DelegateTypeInfo.cs
- WebPartEventArgs.cs
- MultiBindingExpression.cs
- TransactedBatchContext.cs
- CommandTreeTypeHelper.cs
- DataContractSerializerOperationFormatter.cs
- AbsoluteQuery.cs
- TypeExtensionSerializer.cs
- HelpFileFileNameEditor.cs
- RegexReplacement.cs
- MultiDataTrigger.cs
- Assert.cs
- DifferencingCollection.cs
- BufferModeSettings.cs
- InteropAutomationProvider.cs
- WebBrowserProgressChangedEventHandler.cs
- CalendarDay.cs
- ModuleBuilder.cs
- ModelVisual3D.cs
- SqlNodeTypeOperators.cs
- PassportAuthenticationEventArgs.cs
- ITextView.cs
- TaiwanLunisolarCalendar.cs
- MsmqProcessProtocolHandler.cs
- TraceProvider.cs
- Path.cs
- DetailsViewUpdateEventArgs.cs
- DiscoveryRequestHandler.cs
- DataGridHeaderBorder.cs
- securitymgrsite.cs
- ObjectSet.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ArrayConverter.cs
- SettingsContext.cs
- SocketInformation.cs
- PerformanceCountersElement.cs
- ServiceDeploymentInfo.cs
- StickyNoteHelper.cs
- BoundPropertyEntry.cs
- SqlCrossApplyToCrossJoin.cs
- ConfigPathUtility.cs
- XXXOnTypeBuilderInstantiation.cs
- AuthenticationModuleElement.cs
- TextEditorTyping.cs
- SspiSecurityToken.cs
- ExpressionLexer.cs
- PropertyChangedEventManager.cs
- ProgressBar.cs
- StrokeDescriptor.cs
- UriScheme.cs
- XmlnsCache.cs
- ObjectDataSourceSelectingEventArgs.cs
- ControlCollection.cs
- MediaSystem.cs
- NavigatingCancelEventArgs.cs
- ToolStripOverflowButton.cs
- CodeNamespaceImportCollection.cs
- UIPermission.cs
- PhysicalFontFamily.cs
- SynchronizedDisposablePool.cs
- WaitHandleCannotBeOpenedException.cs
- ServiceMoniker.cs
- Win32.cs
- AttributeQuery.cs
- loginstatus.cs
- CustomWebEventKey.cs
- StandardToolWindows.cs
- PolicyException.cs
- EmbossBitmapEffect.cs
- Variable.cs
- MultipleViewPatternIdentifiers.cs
- PropertyConverter.cs
- LineBreak.cs
- DbMetaDataFactory.cs
- CroppedBitmap.cs
- RSAPKCS1SignatureFormatter.cs
- InvokeMethod.cs
- XmlSchemaInferenceException.cs
- FloatUtil.cs
- ActivityXRefConverter.cs
- TypeDescriptor.cs
- TCPClient.cs
- XmlSchemaSimpleContentExtension.cs
- DbDataSourceEnumerator.cs
- ToolStripSplitStackLayout.cs
- Literal.cs
- Rectangle.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- diagnosticsswitches.cs
- TextOutput.cs