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
- exports.cs
- JsonFormatGeneratorStatics.cs
- QueryHandler.cs
- CoTaskMemUnicodeSafeHandle.cs
- ConfigurationSectionCollection.cs
- TranslateTransform3D.cs
- ProcessRequestArgs.cs
- AuthorizationSection.cs
- HtmlString.cs
- Util.cs
- StringCollection.cs
- GlobalProxySelection.cs
- DropShadowBitmapEffect.cs
- InstanceOwnerException.cs
- NonParentingControl.cs
- LogPolicy.cs
- PropertyDescriptorCollection.cs
- AttributeQuery.cs
- RegistrySecurity.cs
- ShaderRenderModeValidation.cs
- HeaderedItemsControl.cs
- xmlsaver.cs
- Grammar.cs
- WebServiceParameterData.cs
- TextBlock.cs
- UnmanagedHandle.cs
- ConfigXmlElement.cs
- XmlSchemaComplexContent.cs
- SourceLineInfo.cs
- Util.cs
- WmfPlaceableFileHeader.cs
- Typeface.cs
- TypedElement.cs
- MessageQuerySet.cs
- TextEditorTables.cs
- ComPlusServiceHost.cs
- InvocationExpression.cs
- DataGridViewCellEventArgs.cs
- ReflectionUtil.cs
- WebPartMenuStyle.cs
- TypeRefElement.cs
- DataGridCellEditEndingEventArgs.cs
- ConfigurationCollectionAttribute.cs
- _ListenerResponseStream.cs
- ScrollItemProviderWrapper.cs
- ConsoleTraceListener.cs
- NativeMethods.cs
- TextBoxAutomationPeer.cs
- WebServiceBindingAttribute.cs
- AspNetSynchronizationContext.cs
- BitSet.cs
- CalendarItem.cs
- TreeViewAutomationPeer.cs
- WebServiceErrorEvent.cs
- Rect3DConverter.cs
- DataGridCaption.cs
- TextDocumentView.cs
- AutomationIdentifierGuids.cs
- XLinq.cs
- SafeEventLogWriteHandle.cs
- MetafileHeaderWmf.cs
- MemberJoinTreeNode.cs
- ToolStripGripRenderEventArgs.cs
- Expressions.cs
- OleDbError.cs
- EncoderExceptionFallback.cs
- EntityDesignerDataSourceView.cs
- HttpPostedFileWrapper.cs
- IsolatedStorage.cs
- XPathSelectionIterator.cs
- ScrollPattern.cs
- XPathChildIterator.cs
- Image.cs
- UserValidatedEventArgs.cs
- StringUtil.cs
- MimeParameterWriter.cs
- ReflectionUtil.cs
- CharacterBufferReference.cs
- XmlHierarchicalEnumerable.cs
- ValidationUtility.cs
- DataGridColumnEventArgs.cs
- Walker.cs
- BatchParser.cs
- CheckBoxField.cs
- CancellationTokenSource.cs
- HttpCapabilitiesBase.cs
- HtmlImage.cs
- StructuralCache.cs
- ScrollChangedEventArgs.cs
- DesignerActionTextItem.cs
- FamilyMapCollection.cs
- BoundField.cs
- JoinQueryOperator.cs
- Point3DCollection.cs
- XmlDocumentType.cs
- ImageFormat.cs
- CodeConstructor.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- SelfIssuedAuthRSAPKCS1SignatureFormatter.cs
- CodeArrayCreateExpression.cs