Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / Mail / SmtpDigestAuthenticationModule.cs / 5 / 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;
//
#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)
{
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,null, ContextFlags.Connection);
}
string resp = (challenge != null ? clientContext.GetOutgoingBlob(challenge) : clientContext.GetOutgoingBlob(null));
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;
//
#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)
{
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,null, ContextFlags.Connection);
}
string resp = (challenge != null ? clientContext.GetOutgoingBlob(challenge) : clientContext.GetOutgoingBlob(null));
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
- AuthorizationRuleCollection.cs
- CalloutQueueItem.cs
- DispatcherExceptionEventArgs.cs
- ModuleConfigurationInfo.cs
- IssuanceLicense.cs
- SecurityContextSecurityToken.cs
- UrlParameterWriter.cs
- EmbeddedMailObjectsCollection.cs
- DbConnectionPoolIdentity.cs
- TextContainerHelper.cs
- MinimizableAttributeTypeConverter.cs
- VerificationAttribute.cs
- IndependentlyAnimatedPropertyMetadata.cs
- TextTabProperties.cs
- ScriptingScriptResourceHandlerSection.cs
- SafeNativeMethods.cs
- LayoutEvent.cs
- VisualStateManager.cs
- TextTreeObjectNode.cs
- FontCollection.cs
- TimeEnumHelper.cs
- CodeAttachEventStatement.cs
- DocumentOrderComparer.cs
- OleDbPermission.cs
- Win32.cs
- GridSplitter.cs
- Control.cs
- TreeNodeBindingCollection.cs
- Block.cs
- parserscommon.cs
- DataExpression.cs
- ParentQuery.cs
- Form.cs
- DataTableMappingCollection.cs
- comcontractssection.cs
- WmlLiteralTextAdapter.cs
- TemplateBuilder.cs
- EpmContentSerializerBase.cs
- AspNetSynchronizationContext.cs
- Win32SafeHandles.cs
- CodeVariableReferenceExpression.cs
- InputChannelBinder.cs
- VariableBinder.cs
- QuadraticBezierSegment.cs
- NetNamedPipeBinding.cs
- QilGeneratorEnv.cs
- GridItem.cs
- JavaScriptString.cs
- DataBindEngine.cs
- HttpPostServerProtocol.cs
- BaseCodeDomTreeGenerator.cs
- AutomationPatternInfo.cs
- IndexedGlyphRun.cs
- XmlDictionaryWriter.cs
- SmtpException.cs
- KnownTypeAttribute.cs
- IdentityNotMappedException.cs
- OperationCanceledException.cs
- RawUIStateInputReport.cs
- SystemIPInterfaceProperties.cs
- AnnotationElement.cs
- ServicePointManagerElement.cs
- Rect.cs
- StateInitialization.cs
- VirtualDirectoryMappingCollection.cs
- SendingRequestEventArgs.cs
- WorkflowInstanceTerminatedRecord.cs
- LinqDataSourceUpdateEventArgs.cs
- CompoundFileStreamReference.cs
- MetabaseSettingsIis7.cs
- RowUpdatingEventArgs.cs
- ProfileParameter.cs
- XmlStringTable.cs
- IDReferencePropertyAttribute.cs
- ISFClipboardData.cs
- ObjectPersistData.cs
- Facet.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- SerializationAttributes.cs
- TraceSwitch.cs
- DataTemplateSelector.cs
- RemoveStoryboard.cs
- SchemaImporterExtensionElementCollection.cs
- EditorAttribute.cs
- MemoryFailPoint.cs
- DeferredTextReference.cs
- MaskedTextProvider.cs
- IntAverageAggregationOperator.cs
- XmlDataSourceView.cs
- TextBoxBase.cs
- JsonClassDataContract.cs
- EncodingTable.cs
- SlotInfo.cs
- DocumentXPathNavigator.cs
- Positioning.cs
- Compiler.cs
- AccessViolationException.cs
- SpnEndpointIdentityExtension.cs
- DrawingState.cs
- ScriptingScriptResourceHandlerSection.cs