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
- MissingSatelliteAssemblyException.cs
- QueryResults.cs
- InputManager.cs
- XmlLanguage.cs
- Label.cs
- SortDescriptionCollection.cs
- CodeRemoveEventStatement.cs
- OpenTypeLayout.cs
- ArraySegment.cs
- ConsoleTraceListener.cs
- MailMessageEventArgs.cs
- EventQueueState.cs
- ScrollChrome.cs
- EntityProviderServices.cs
- RequestCachePolicyConverter.cs
- embossbitmapeffect.cs
- DataGridPageChangedEventArgs.cs
- IgnoreFileBuildProvider.cs
- IgnoreDataMemberAttribute.cs
- TypeConverterBase.cs
- Point3DCollectionConverter.cs
- DesignerTransaction.cs
- EventMap.cs
- Int32CollectionConverter.cs
- OptimizedTemplateContent.cs
- UrlMappingsSection.cs
- ObjectTag.cs
- WebControl.cs
- ManualResetEvent.cs
- ManipulationVelocities.cs
- DataError.cs
- ProcessHost.cs
- SiteMapNodeCollection.cs
- PropertiesTab.cs
- StrokeSerializer.cs
- HandleCollector.cs
- CreateDataSourceDialog.cs
- TypeUtil.cs
- LineBreak.cs
- EnumMember.cs
- EventHandlerList.cs
- SqlDuplicator.cs
- PerspectiveCamera.cs
- BevelBitmapEffect.cs
- URL.cs
- UIElementParaClient.cs
- XamlRtfConverter.cs
- HashMembershipCondition.cs
- QilExpression.cs
- TextElement.cs
- SnapLine.cs
- SessionSwitchEventArgs.cs
- MembershipAdapter.cs
- RadioButtonAutomationPeer.cs
- AppDomainManager.cs
- GridViewRowPresenter.cs
- DataGridViewTopRowAccessibleObject.cs
- Point3DIndependentAnimationStorage.cs
- SelectorAutomationPeer.cs
- FormViewDesigner.cs
- StdValidatorsAndConverters.cs
- ErrorInfoXmlDocument.cs
- DataTable.cs
- DataServiceExpressionVisitor.cs
- SBCSCodePageEncoding.cs
- SchemaTypeEmitter.cs
- TableLayoutRowStyleCollection.cs
- COM2ComponentEditor.cs
- Dispatcher.cs
- MarkupExtensionParser.cs
- DiscoveryDocument.cs
- SRGSCompiler.cs
- BamlResourceSerializer.cs
- BitVector32.cs
- ContractUtils.cs
- HttpCacheVaryByContentEncodings.cs
- RequiredFieldValidator.cs
- GuidelineCollection.cs
- Utils.cs
- OpCopier.cs
- Stylus.cs
- FreezableDefaultValueFactory.cs
- SystemWebExtensionsSectionGroup.cs
- ServiceAuthorizationElement.cs
- SafeProcessHandle.cs
- OperationResponse.cs
- Rect3DConverter.cs
- PartialList.cs
- XamlRtfConverter.cs
- MenuScrollingVisibilityConverter.cs
- Emitter.cs
- RSAPKCS1SignatureDeformatter.cs
- ProxyHwnd.cs
- LambdaCompiler.Address.cs
- CodeMemberMethod.cs
- Misc.cs
- ArgIterator.cs
- DataGridViewCheckBoxCell.cs
- TextRunProperties.cs
- UdpDuplexChannel.cs