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
- SmiEventStream.cs
- KeysConverter.cs
- DefaultValueTypeConverter.cs
- XmlArrayItemAttribute.cs
- OutputWindow.cs
- xsdvalidator.cs
- SqlDataSourceQuery.cs
- Visitor.cs
- JsonDataContract.cs
- GenericWebPart.cs
- XmlValueConverter.cs
- RelatedView.cs
- InstanceOwner.cs
- GraphicsContext.cs
- ParserStreamGeometryContext.cs
- Transaction.cs
- WorkflowMessageEventHandler.cs
- WinFormsUtils.cs
- ImageClickEventArgs.cs
- TextRangeAdaptor.cs
- ToolboxComponentsCreatingEventArgs.cs
- HtmlInputText.cs
- DocumentApplicationJournalEntry.cs
- FormsAuthenticationModule.cs
- RemotingSurrogateSelector.cs
- DebuggerAttributes.cs
- AnonymousIdentificationSection.cs
- SingleObjectCollection.cs
- CompareInfo.cs
- SqlTransaction.cs
- Part.cs
- MenuStrip.cs
- HostedHttpRequestAsyncResult.cs
- ProtocolViolationException.cs
- ObjectIDGenerator.cs
- ProfileManager.cs
- ExpressionBuilderContext.cs
- XmlDocumentType.cs
- AbsoluteQuery.cs
- ApplicationHost.cs
- TemplateApplicationHelper.cs
- Renderer.cs
- WebPartConnection.cs
- RemoteDebugger.cs
- InfoCardTraceRecord.cs
- EntityContainerAssociationSet.cs
- Error.cs
- RegexRunnerFactory.cs
- HtmlElement.cs
- NavigationProperty.cs
- BamlResourceSerializer.cs
- ControlAdapter.cs
- ByteRangeDownloader.cs
- XhtmlTextWriter.cs
- ComboBoxAutomationPeer.cs
- WindowPatternIdentifiers.cs
- TerminatorSinks.cs
- PerformanceCounterCategory.cs
- HandledEventArgs.cs
- DbBuffer.cs
- sqlser.cs
- PerspectiveCamera.cs
- FlowDocumentReader.cs
- SecurityKeyType.cs
- SymmetricKeyWrap.cs
- SurrogateEncoder.cs
- StructuralCache.cs
- EUCJPEncoding.cs
- LogReserveAndAppendState.cs
- ApplicationSecurityManager.cs
- BamlWriter.cs
- ModuleElement.cs
- Certificate.cs
- BaseInfoTable.cs
- StringDictionaryCodeDomSerializer.cs
- PrefixQName.cs
- SqlUtils.cs
- DocumentPageTextView.cs
- WmfPlaceableFileHeader.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- RefExpr.cs
- MobileControlBuilder.cs
- TraceUtils.cs
- designeractionlistschangedeventargs.cs
- HttpWebRequestElement.cs
- HttpResponseInternalWrapper.cs
- OracleDateTime.cs
- CodeNamespaceCollection.cs
- NamespaceQuery.cs
- WebBrowserSiteBase.cs
- ipaddressinformationcollection.cs
- GridItemCollection.cs
- XmlNodeComparer.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- ButtonBase.cs
- ProfileGroupSettings.cs
- BitmapEffectDrawingContextWalker.cs
- PostBackOptions.cs
- SerializableTypeCodeDomSerializer.cs
- PopupControlService.cs