Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 1305376 / 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; using System.Security.Authentication.ExtendedProtection; #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, string spn, ChannelBinding channelBindingToken) { 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.UTF8.GetBytes(userName)), false); } else { this.sessions.Remove(sessionCookie); // return new Authorization(Convert.ToBase64String(System.Text.Encoding.UTF8.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 } } // 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
- DoubleCollectionConverter.cs
- StylusPointPropertyInfo.cs
- StringInfo.cs
- RegistryExceptionHelper.cs
- AxisAngleRotation3D.cs
- PasswordPropertyTextAttribute.cs
- PartialToken.cs
- HotSpotCollection.cs
- ListViewSelectEventArgs.cs
- WindowsListViewItem.cs
- ToolBar.cs
- DispatcherEventArgs.cs
- XPathSelfQuery.cs
- RijndaelCryptoServiceProvider.cs
- PixelFormatConverter.cs
- Simplifier.cs
- HtmlInputControl.cs
- DataContext.cs
- XmlEntity.cs
- ArraySet.cs
- DesigntimeLicenseContext.cs
- CustomCategoryAttribute.cs
- storepermissionattribute.cs
- Win32Interop.cs
- DataViewManagerListItemTypeDescriptor.cs
- XmlEntityReference.cs
- FontInfo.cs
- InstanceBehavior.cs
- TemplateField.cs
- ForEachAction.cs
- MemberJoinTreeNode.cs
- WebPartTransformerCollection.cs
- SerializerDescriptor.cs
- ControlValuePropertyAttribute.cs
- FigureHelper.cs
- IisTraceListener.cs
- MetadataPropertyCollection.cs
- FtpCachePolicyElement.cs
- SafeRightsManagementQueryHandle.cs
- BevelBitmapEffect.cs
- ResourceWriter.cs
- SoapInteropTypes.cs
- WebUtil.cs
- FocusChangedEventArgs.cs
- XPathAncestorQuery.cs
- ColumnHeader.cs
- FloatAverageAggregationOperator.cs
- VisualBasic.cs
- FormViewModeEventArgs.cs
- Oid.cs
- ZipIOCentralDirectoryFileHeader.cs
- XPathDocument.cs
- CmsInterop.cs
- RectangleConverter.cs
- SqlWriter.cs
- HttpInputStream.cs
- TypeBuilder.cs
- Transform3D.cs
- WebServiceTypeData.cs
- DomainConstraint.cs
- AgileSafeNativeMemoryHandle.cs
- DiagnosticTraceSource.cs
- MatrixTransform3D.cs
- AutomationPatternInfo.cs
- XMLUtil.cs
- TypeValidationEventArgs.cs
- PrintControllerWithStatusDialog.cs
- SqlInternalConnectionTds.cs
- SchemaCollectionPreprocessor.cs
- ProvidersHelper.cs
- RowToParametersTransformer.cs
- listitem.cs
- SecurityContext.cs
- UserPreferenceChangingEventArgs.cs
- CodeTypeReference.cs
- OutputCacheModule.cs
- InkSerializer.cs
- ManagementQuery.cs
- OleDbReferenceCollection.cs
- Rect3DConverter.cs
- PointValueSerializer.cs
- HttpProfileGroupBase.cs
- TimeZone.cs
- XmlSchemaNotation.cs
- ConnectionsZone.cs
- PlaceHolder.cs
- SafeCryptoHandles.cs
- UnsafeNativeMethods.cs
- ClientTargetSection.cs
- WebPartMenuStyle.cs
- DataBindingList.cs
- StringUtil.cs
- TimerElapsedEvenArgs.cs
- TextShapeableCharacters.cs
- DBBindings.cs
- sqlmetadatafactory.cs
- SafeCryptoHandles.cs
- SchemaObjectWriter.cs
- DataTablePropertyDescriptor.cs
- GetCardDetailsRequest.cs