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
- NamedObject.cs
- UpdatePanelTriggerCollection.cs
- MachineKeySection.cs
- UnsafeNativeMethods.cs
- XmlMembersMapping.cs
- BigInt.cs
- Range.cs
- KoreanCalendar.cs
- Rijndael.cs
- UnauthorizedAccessException.cs
- SrgsRuleRef.cs
- FileRegion.cs
- SqlNodeAnnotations.cs
- Barrier.cs
- DataQuery.cs
- PointAnimationClockResource.cs
- SerTrace.cs
- DATA_BLOB.cs
- SecurityRuntime.cs
- CalendarDateChangedEventArgs.cs
- ModuleElement.cs
- AppSettingsSection.cs
- DataGridViewMethods.cs
- SAPIEngineTypes.cs
- RenderDataDrawingContext.cs
- Internal.cs
- QuaternionAnimation.cs
- KnownTypesHelper.cs
- FrameworkElement.cs
- SoapFault.cs
- SetUserPreferenceRequest.cs
- DecimalFormatter.cs
- PropertyGridView.cs
- ToolboxItemAttribute.cs
- CurrentTimeZone.cs
- BaseResourcesBuildProvider.cs
- UpdateManifestForBrowserApplication.cs
- ImportCatalogPart.cs
- TextProperties.cs
- ClientConfigPaths.cs
- HuffModule.cs
- TdsValueSetter.cs
- WriteableBitmap.cs
- ListViewDataItem.cs
- NativeMethods.cs
- SortKey.cs
- HitTestParameters.cs
- ArrayTypeMismatchException.cs
- ConfigurationStrings.cs
- TabletDevice.cs
- SafeFileHandle.cs
- DependencyObjectPropertyDescriptor.cs
- TextEditorTables.cs
- BinaryParser.cs
- EditorZoneDesigner.cs
- BinaryHeap.cs
- XmlToDatasetMap.cs
- ListMarkerLine.cs
- FaultCode.cs
- CommunicationObjectAbortedException.cs
- Exceptions.cs
- AdapterUtil.cs
- NullReferenceException.cs
- BuildProvidersCompiler.cs
- AssemblyAttributes.cs
- DPCustomTypeDescriptor.cs
- CodeAssignStatement.cs
- NestPullup.cs
- CustomCategoryAttribute.cs
- SmtpTransport.cs
- SimpleLine.cs
- SuppressIldasmAttribute.cs
- DBSchemaTable.cs
- Activator.cs
- ServiceTimeoutsBehavior.cs
- FormView.cs
- EllipseGeometry.cs
- RelationHandler.cs
- SQLInt32Storage.cs
- InstanceDataCollection.cs
- Scene3D.cs
- httpapplicationstate.cs
- RegistrySecurity.cs
- PerformanceCounterScope.cs
- BulletChrome.cs
- DateTimeConstantAttribute.cs
- FixedSOMLineCollection.cs
- WsdlWriter.cs
- DesignTimeTemplateParser.cs
- MILUtilities.cs
- JsonByteArrayDataContract.cs
- ContainerUtilities.cs
- SchemaImporterExtensionsSection.cs
- DocumentPage.cs
- Validator.cs
- MemoryFailPoint.cs
- FlowThrottle.cs
- EmptyControlCollection.cs
- StoreAnnotationsMap.cs
- CodeEventReferenceExpression.cs