Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 2 / SmtpLoginAuthenticationModule.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 SmtpLoginAuthenticationModule : ISmtpAuthenticationModule
{
Hashtable sessions = new Hashtable();
internal SmtpLoginAuthenticationModule()
{
}
#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)
{
if(Logging.On)Logging.Enter(Logging.Web, this, "Authenticate", null);
try {
lock (this.sessions)
{
NetworkCredential cachedCredential = sessions[sessionCookie] as NetworkCredential;
if (cachedCredential == null)
{
if (credential == null || credential is SystemNetworkCredential)
{
return null;
}
sessions[sessionCookie] = credential;
string userName = credential.UserName;
string domain = credential.Domain;
if (domain!=null && domain.Length > 0) {
userName = domain + "\\" + userName;
}
//
return new Authorization(Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(userName)), false);
}
else
{
this.sessions.Remove(sessionCookie);
//
return new Authorization(Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(cachedCredential.Password)), true);
}
}
} finally {
if(Logging.On)Logging.Exit(Logging.Web, this, "Authenticate", null);
}
}
public string AuthenticationType
{
get
{
return "login";
}
}
public void CloseContext(object sessionCookie) {
// This is a no-op since the context is not
// kept open by this module beyond auth completion.
}
#endregion
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ParameterBinding.cs
- ContentDisposition.cs
- XpsS0ValidatingLoader.cs
- CharConverter.cs
- Decorator.cs
- Symbol.cs
- SQLBinary.cs
- Thumb.cs
- GcHandle.cs
- AppliedDeviceFiltersDialog.cs
- sqlinternaltransaction.cs
- StringFunctions.cs
- ChtmlTextWriter.cs
- CodeGen.cs
- Psha1DerivedKeyGeneratorHelper.cs
- ToolStripSeparator.cs
- DBNull.cs
- TextFormatter.cs
- BrushConverter.cs
- Win32MouseDevice.cs
- TransactionScope.cs
- FormatException.cs
- RadioButtonStandardAdapter.cs
- TargetException.cs
- RightsManagementEncryptionTransform.cs
- DataConnectionHelper.cs
- StoreContentChangedEventArgs.cs
- ItemMap.cs
- ApplicationTrust.cs
- ReverseInheritProperty.cs
- XmlNodeReader.cs
- ListManagerBindingsCollection.cs
- HttpServerChannel.cs
- ToolStripContainer.cs
- WeakReference.cs
- WebDisplayNameAttribute.cs
- ListItemCollection.cs
- IdentityHolder.cs
- SqlClientPermission.cs
- FieldNameLookup.cs
- RecommendedAsConfigurableAttribute.cs
- IndexedEnumerable.cs
- UncommonField.cs
- ArrayItemValue.cs
- CodeMemberProperty.cs
- Track.cs
- PageContent.cs
- ProxyWebPartConnectionCollection.cs
- StringComparer.cs
- DataControlCommands.cs
- ServiceHostingEnvironmentSection.cs
- WindowsImpersonationContext.cs
- MembershipPasswordException.cs
- ClientBuildManager.cs
- GridViewRowEventArgs.cs
- PerformanceCounterCategory.cs
- ImageMap.cs
- TagPrefixInfo.cs
- templategroup.cs
- FakeModelItemImpl.cs
- TemplateXamlParser.cs
- _LocalDataStore.cs
- ListItem.cs
- NumberFormatInfo.cs
- EasingKeyFrames.cs
- ListViewSortEventArgs.cs
- StreamGeometry.cs
- WebConfigurationFileMap.cs
- System.Data_BID.cs
- EdmSchemaError.cs
- BufferBuilder.cs
- HyperLinkField.cs
- TrackingMemoryStreamFactory.cs
- ActiveXHost.cs
- DbDataSourceEnumerator.cs
- mda.cs
- QueryCursorEventArgs.cs
- FormatterServices.cs
- EntryWrittenEventArgs.cs
- CompatibleIComparer.cs
- SafeNativeMethods.cs
- ProfileInfo.cs
- ReversePositionQuery.cs
- CopyOnWriteList.cs
- XmlSignatureManifest.cs
- SchemaContext.cs
- HashRepartitionStream.cs
- UpdateException.cs
- GetMemberBinder.cs
- SubMenuStyleCollection.cs
- UpDownEvent.cs
- BStrWrapper.cs
- ControlBuilder.cs
- PopupRootAutomationPeer.cs
- PrtCap_Reader.cs
- SpellerHighlightLayer.cs
- HtmlButton.cs
- DbDataAdapter.cs
- MembershipSection.cs
- CmsInterop.cs