Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Net / System / Net / Mail / SmtpDigestAuthenticationModule.cs / 2 / SmtpDigestAuthenticationModule.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 SmtpDigestAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpDigestAuthenticationModule() { } #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) { lock (this.sessions) { NTAuthentication clientContext = this.sessions[sessionCookie] as NTAuthentication; if (clientContext == null) { if (credential == null){ return null; } // this.sessions[sessionCookie] = clientContext = new NTAuthentication(false, "WDigest", credential, spn, ContextFlags.Connection, channelBindingToken); } string resp = clientContext.GetOutgoingBlob(challenge); if (!clientContext.IsCompleted) { return new Authorization(resp, false); } else { this.sessions.Remove(sessionCookie); return new Authorization(resp, true); } } } public string AuthenticationType { get { return "WDigest"; } } 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; using System.Security.Authentication.ExtendedProtection; // #if MAKE_MAILCLIENT_PUBLIC internal #else internal #endif class SmtpDigestAuthenticationModule : ISmtpAuthenticationModule { Hashtable sessions = new Hashtable(); internal SmtpDigestAuthenticationModule() { } #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) { lock (this.sessions) { NTAuthentication clientContext = this.sessions[sessionCookie] as NTAuthentication; if (clientContext == null) { if (credential == null){ return null; } // this.sessions[sessionCookie] = clientContext = new NTAuthentication(false, "WDigest", credential, spn, ContextFlags.Connection, channelBindingToken); } string resp = clientContext.GetOutgoingBlob(challenge); if (!clientContext.IsCompleted) { return new Authorization(resp, false); } else { this.sessions.Remove(sessionCookie); return new Authorization(resp, true); } } } public string AuthenticationType { get { return "WDigest"; } } 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
- EventLog.cs
- LineServicesCallbacks.cs
- ElementHost.cs
- DoubleAnimationUsingKeyFrames.cs
- HtmlButton.cs
- filewebrequest.cs
- SqlProfileProvider.cs
- TypeAccessException.cs
- FormatException.cs
- PairComparer.cs
- GeneralTransform3DTo2D.cs
- SqlDataSourceSelectingEventArgs.cs
- Drawing.cs
- XmlPreloadedResolver.cs
- CompilerState.cs
- InheritanceContextChangedEventManager.cs
- Enumerable.cs
- TextEncodedRawTextWriter.cs
- InheritanceAttribute.cs
- MenuItemBindingCollection.cs
- UrlMappingCollection.cs
- PeerHelpers.cs
- CalendarData.cs
- RTTypeWrapper.cs
- DataMemberConverter.cs
- XmlSchemaAny.cs
- RelationshipEndMember.cs
- GeometryGroup.cs
- DbConnectionPool.cs
- X509SecurityTokenAuthenticator.cs
- ChangeNode.cs
- FactoryGenerator.cs
- MethodImplAttribute.cs
- PageStatePersister.cs
- NetDataContractSerializer.cs
- ScriptControlDescriptor.cs
- FormViewUpdateEventArgs.cs
- BitmapEffectGroup.cs
- XmlUnspecifiedAttribute.cs
- NativeMethods.cs
- WCFServiceClientProxyGenerator.cs
- FactoryId.cs
- BinarySecretSecurityToken.cs
- EnumConverter.cs
- Graph.cs
- Condition.cs
- XmlValidatingReaderImpl.cs
- XPathChildIterator.cs
- ForeignKeyConstraint.cs
- ExtensionQuery.cs
- FileUtil.cs
- TextProperties.cs
- StorageBasedPackageProperties.cs
- DataGrid.cs
- CharacterBuffer.cs
- ExpandSegmentCollection.cs
- CommandSet.cs
- VirtualDirectoryMapping.cs
- String.cs
- selecteditemcollection.cs
- SerializeAbsoluteContext.cs
- StylusOverProperty.cs
- ListItemsPage.cs
- GroupDescription.cs
- MemoryStream.cs
- GridViewColumnCollection.cs
- ProtectedConfiguration.cs
- MasterPageBuildProvider.cs
- RectangleGeometry.cs
- PhonemeEventArgs.cs
- PlatformCulture.cs
- XPathDocumentBuilder.cs
- FormsAuthenticationUser.cs
- CommandLineParser.cs
- AnnotationDocumentPaginator.cs
- AssemblyCollection.cs
- ClientTargetSection.cs
- DrawingGroup.cs
- OdbcTransaction.cs
- ToolStripSettings.cs
- DictationGrammar.cs
- SchemaCollectionPreprocessor.cs
- ClientConfigurationSystem.cs
- SqlIdentifier.cs
- SqlClientMetaDataCollectionNames.cs
- ExtensionQuery.cs
- ClientScriptManagerWrapper.cs
- RuleAttributes.cs
- SqlTriggerContext.cs
- GAC.cs
- PerspectiveCamera.cs
- TextRangeEditTables.cs
- CommandManager.cs
- ContextMenu.cs
- QueryCacheManager.cs
- QuaternionAnimation.cs
- ColumnHeaderConverter.cs
- BulletChrome.cs
- ImageFormatConverter.cs
- DataRelation.cs