Code:
/ DotNET / DotNET / 8.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
- AuthenticationModuleElement.cs
- CommandPlan.cs
- ConfigurationValue.cs
- DataGridViewDataErrorEventArgs.cs
- DispatcherHooks.cs
- EntityDesignerDataSourceView.cs
- TrustLevelCollection.cs
- MissingMemberException.cs
- AsymmetricCryptoHandle.cs
- StreamingContext.cs
- ObjectManager.cs
- OleDbDataReader.cs
- UIHelper.cs
- NullableLongMinMaxAggregationOperator.cs
- AnonymousIdentificationModule.cs
- GC.cs
- ExtentKey.cs
- HealthMonitoringSectionHelper.cs
- DeclaredTypeValidator.cs
- SettingsSection.cs
- StackSpiller.Bindings.cs
- QilDataSource.cs
- MemoryStream.cs
- CryptoHelper.cs
- Animatable.cs
- VisualTreeHelper.cs
- ToolStripScrollButton.cs
- ContextBase.cs
- MenuItemBindingCollection.cs
- TabControlCancelEvent.cs
- SQLConvert.cs
- TemplateBamlRecordReader.cs
- _AutoWebProxyScriptHelper.cs
- SqlCacheDependencyDatabaseCollection.cs
- ToolStripDesignerAvailabilityAttribute.cs
- RecognizedAudio.cs
- CoTaskMemSafeHandle.cs
- ConnectionsZoneAutoFormat.cs
- WebInvokeAttribute.cs
- InvokePatternIdentifiers.cs
- Command.cs
- ConfigurationValues.cs
- FileSecurity.cs
- Point3D.cs
- ClickablePoint.cs
- StringFunctions.cs
- ExtensionElementCollection.cs
- DataListCommandEventArgs.cs
- ReadWriteSpinLock.cs
- PageHandlerFactory.cs
- Normalization.cs
- DataObjectSettingDataEventArgs.cs
- Profiler.cs
- RepeaterItemEventArgs.cs
- HttpProfileBase.cs
- ISAPIApplicationHost.cs
- SapiInterop.cs
- TextSelectionHelper.cs
- HtmlInputControl.cs
- SqlNodeAnnotation.cs
- ControlDesigner.cs
- QilExpression.cs
- MenuItemStyleCollectionEditor.cs
- X509UI.cs
- ItemAutomationPeer.cs
- RawStylusInputCustomData.cs
- DataSourceSelectArguments.cs
- UserControlAutomationPeer.cs
- UriSection.cs
- HandleRef.cs
- SpecialFolderEnumConverter.cs
- COM2ComponentEditor.cs
- ConnectionStringsExpressionBuilder.cs
- OpenFileDialog.cs
- Attributes.cs
- PowerStatus.cs
- GridViewColumnCollection.cs
- SwitchAttribute.cs
- Int32Collection.cs
- ButtonColumn.cs
- InheritanceContextHelper.cs
- BaseResourcesBuildProvider.cs
- ToolBar.cs
- UrlAuthFailedErrorFormatter.cs
- MessageQueue.cs
- VariableQuery.cs
- PropertyPathConverter.cs
- RelatedImageListAttribute.cs
- RuntimeIdentifierPropertyAttribute.cs
- PagerSettings.cs
- RequiredFieldValidator.cs
- M3DUtil.cs
- CommandDevice.cs
- SslStream.cs
- SiteOfOriginContainer.cs
- PropertyChangedEventArgs.cs
- BitmapImage.cs
- DetailsViewInsertEventArgs.cs
- OrderedHashRepartitionEnumerator.cs
- MimeTypePropertyAttribute.cs