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
- ServiceAuthorizationManager.cs
- Int32Animation.cs
- SystemUnicastIPAddressInformation.cs
- CacheSection.cs
- Polygon.cs
- DeferredReference.cs
- GradientSpreadMethodValidation.cs
- WebConfigurationManager.cs
- ArraySubsetEnumerator.cs
- ElementFactory.cs
- AssemblySettingAttributes.cs
- CompilerCollection.cs
- RectangleGeometry.cs
- ActiveXSite.cs
- TextModifierScope.cs
- ThreadAttributes.cs
- HandleTable.cs
- GeometryValueSerializer.cs
- TextTrailingCharacterEllipsis.cs
- PrintingPermissionAttribute.cs
- ConstructorArgumentAttribute.cs
- EdmSchemaError.cs
- WorkflowInspectionServices.cs
- Trace.cs
- ProvidePropertyAttribute.cs
- ExtensibleClassFactory.cs
- XmlDomTextWriter.cs
- TabletDevice.cs
- TaiwanCalendar.cs
- ContractCodeDomInfo.cs
- Vector.cs
- DataGridViewCellConverter.cs
- QilCloneVisitor.cs
- DispatcherEventArgs.cs
- OracleCommandSet.cs
- WsdlBuildProvider.cs
- GridViewRowPresenter.cs
- ConcurrencyBehavior.cs
- Activation.cs
- PolyQuadraticBezierSegment.cs
- LineBreakRecord.cs
- JoinElimination.cs
- EntityDataSourceChangedEventArgs.cs
- HighContrastHelper.cs
- Misc.cs
- FieldTemplateUserControl.cs
- SqlTypesSchemaImporter.cs
- _ListenerAsyncResult.cs
- EasingKeyFrames.cs
- DesignerOptionService.cs
- RequestStatusBarUpdateEventArgs.cs
- WebPartManagerDesigner.cs
- BinaryKeyIdentifierClause.cs
- LicenseContext.cs
- DuplicateWaitObjectException.cs
- FlagsAttribute.cs
- SimpleFieldTemplateUserControl.cs
- DesignTimeTemplateParser.cs
- DataGridViewRowsRemovedEventArgs.cs
- XmlCharType.cs
- DataBoundControl.cs
- WaitForChangedResult.cs
- HostElement.cs
- EtwTrackingBehaviorElement.cs
- Application.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- XmlFormatWriterGenerator.cs
- LambdaCompiler.Unary.cs
- ExpressionBuilder.cs
- RowParagraph.cs
- ListView.cs
- VarInfo.cs
- ConvertersCollection.cs
- BindStream.cs
- ResourceExpressionEditorSheet.cs
- FloaterBaseParaClient.cs
- Throw.cs
- TableLayoutRowStyleCollection.cs
- CustomAttributeBuilder.cs
- NeutralResourcesLanguageAttribute.cs
- WebPartTransformerAttribute.cs
- LinqDataSourceDeleteEventArgs.cs
- NamedElement.cs
- EventHandlerList.cs
- GridLength.cs
- BamlLocalizer.cs
- Registry.cs
- ProcessProtocolHandler.cs
- DesignColumnCollection.cs
- SQLInt16.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- SchemaDeclBase.cs
- GlyphShapingProperties.cs
- X509ChainPolicy.cs
- WebPartDeleteVerb.cs
- DataControlField.cs
- ProviderMetadata.cs
- FixedSOMTextRun.cs
- EventSourceCreationData.cs
- DataSetFieldSchema.cs