Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / Mail / SmtpLoginAuthenticationModule.cs / 5 / 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 } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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 } } // 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
- RegexNode.cs
- XmlSchemaSimpleTypeList.cs
- EntityParameter.cs
- PairComparer.cs
- TriState.cs
- IItemProperties.cs
- ClassicBorderDecorator.cs
- ServiceCredentialsElement.cs
- TimeSpanConverter.cs
- DrawingContext.cs
- NullableFloatAverageAggregationOperator.cs
- ListBase.cs
- SpecialFolderEnumConverter.cs
- EventItfInfo.cs
- WinInet.cs
- XamlGridLengthSerializer.cs
- BindingNavigator.cs
- EntityDataSourceState.cs
- mactripleDES.cs
- PageParserFilter.cs
- DataGridViewImageColumn.cs
- Util.cs
- XmlNamedNodeMap.cs
- SubclassTypeValidatorAttribute.cs
- MenuItem.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- ProtocolsConfiguration.cs
- LogRecordSequence.cs
- SpellerError.cs
- TreeViewHitTestInfo.cs
- StringArrayConverter.cs
- CompilerState.cs
- MouseActionValueSerializer.cs
- ListView.cs
- RectangleHotSpot.cs
- EmbeddedMailObjectsCollection.cs
- SettingsPropertyIsReadOnlyException.cs
- Exceptions.cs
- EventSetter.cs
- RtfFormatStack.cs
- FactoryMaker.cs
- AssemblyResourceLoader.cs
- DataTablePropertyDescriptor.cs
- LogStream.cs
- ListDataBindEventArgs.cs
- OutputScopeManager.cs
- ADMembershipUser.cs
- FilteredReadOnlyMetadataCollection.cs
- UnauthorizedWebPart.cs
- If.cs
- DataGridViewSortCompareEventArgs.cs
- InfoCardMasterKey.cs
- RegexTypeEditor.cs
- codemethodreferenceexpression.cs
- TypedTableBaseExtensions.cs
- SymDocumentType.cs
- AxParameterData.cs
- PrimarySelectionGlyph.cs
- MSHTMLHostUtil.cs
- ThreadExceptionEvent.cs
- FixedNode.cs
- ElementNotAvailableException.cs
- LinqDataSourceUpdateEventArgs.cs
- SmiContextFactory.cs
- Knowncolors.cs
- FloaterBaseParaClient.cs
- OrderByQueryOptionExpression.cs
- AspProxy.cs
- DbMetaDataColumnNames.cs
- HttpProfileGroupBase.cs
- CommandBindingCollection.cs
- HostingPreferredMapPath.cs
- VersionValidator.cs
- KeyFrames.cs
- DataColumnChangeEvent.cs
- ContainerControlDesigner.cs
- ContentElementAutomationPeer.cs
- WorkflowRuntimeServiceElementCollection.cs
- DoubleAnimation.cs
- RTLAwareMessageBox.cs
- ScrollContentPresenter.cs
- LoginView.cs
- EntityContainerEmitter.cs
- Codec.cs
- SequentialUshortCollection.cs
- StaticFileHandler.cs
- Vector3D.cs
- PtsPage.cs
- StoreContentChangedEventArgs.cs
- XmlUnspecifiedAttribute.cs
- ValidatorCollection.cs
- PtsContext.cs
- BindingManagerDataErrorEventArgs.cs
- IndexedEnumerable.cs
- ServicesUtilities.cs
- UInt16Converter.cs
- ManipulationPivot.cs
- FacetValueContainer.cs
- EasingFunctionBase.cs
- TextTreeTextElementNode.cs