Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / BasicHttpMessageSecurity.cs / 1 / BasicHttpMessageSecurity.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel { using System.Net.Security; using System.ServiceModel.Channels; using System.ServiceModel.Security; using System.ServiceModel.Security.Tokens; public sealed class BasicHttpMessageSecurity { internal const BasicHttpMessageCredentialType DefaultClientCredentialType = BasicHttpMessageCredentialType.UserName; BasicHttpMessageCredentialType clientCredentialType; SecurityAlgorithmSuite algorithmSuite; internal BasicHttpMessageSecurity() { clientCredentialType = DefaultClientCredentialType; algorithmSuite = SecurityAlgorithmSuite.Default; } public BasicHttpMessageCredentialType ClientCredentialType { get { return this.clientCredentialType; } set { if (!BasicHttpMessageCredentialTypeHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.clientCredentialType = value; } } public SecurityAlgorithmSuite AlgorithmSuite { get { return this.algorithmSuite; } set { if (value == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value"); } this.algorithmSuite = value; } } // if any changes are made to this method, please reflect them in the corresponding TryCrete() method internal SecurityBindingElement CreateMessageSecurity(bool isSecureTransportMode) { SecurityBindingElement result; if (isSecureTransportMode) { MessageSecurityVersion version = MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10; switch (this.clientCredentialType) { case BasicHttpMessageCredentialType.Certificate: result = SecurityBindingElement.CreateCertificateOverTransportBindingElement(version); break; case BasicHttpMessageCredentialType.UserName: result = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); result.MessageSecurityVersion = version; break; default: DiagnosticUtility.DebugAssert("Unsupported basic http message credential type"); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } } else { if (this.clientCredentialType != BasicHttpMessageCredentialType.Certificate) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.BasicHttpMessageSecurityRequiresCertificate))); } result = SecurityBindingElement.CreateMutualCertificateBindingElement(MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10, true); } result.DefaultAlgorithmSuite = this.AlgorithmSuite; result.SecurityHeaderLayout = SecurityHeaderLayout.Lax; result.SetKeyDerivation(false); result.DoNotEmitTrust = true; return result; } // This method reverses the CreateMessageSecurity(bool) method internal static bool TryCreate(SecurityBindingElement sbe, out BasicHttpMessageSecurity security, out bool isSecureTransportMode) { DiagnosticUtility.DebugAssert(null != sbe, string.Empty); security = null; isSecureTransportMode = false; if (sbe.DoNotEmitTrust == false) return false; if (!sbe.IsSetKeyDerivation(false)) return false; if (sbe.SecurityHeaderLayout != SecurityHeaderLayout.Lax) return false; if (sbe.MessageSecurityVersion != MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10) return false; BasicHttpMessageCredentialType credentialType; if (!SecurityBindingElement.IsMutualCertificateBinding(sbe, true)) { isSecureTransportMode = true; if (SecurityBindingElement.IsCertificateOverTransportBinding(sbe)) { credentialType = BasicHttpMessageCredentialType.Certificate; } else if (SecurityBindingElement.IsUserNameOverTransportBinding(sbe)) { credentialType = BasicHttpMessageCredentialType.UserName; } else { return false; } } else { credentialType = BasicHttpMessageCredentialType.Certificate; } security = new BasicHttpMessageSecurity(); security.ClientCredentialType = credentialType; security.AlgorithmSuite = sbe.DefaultAlgorithmSuite; return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlUtil.cs
- sqlmetadatafactory.cs
- PrefixQName.cs
- Component.cs
- Knowncolors.cs
- WindowsListViewItem.cs
- DisableDpiAwarenessAttribute.cs
- TextServicesHost.cs
- ProfileModule.cs
- QueueProcessor.cs
- Permission.cs
- ClipboardData.cs
- MulticastNotSupportedException.cs
- ObjectViewQueryResultData.cs
- HoistedLocals.cs
- WebException.cs
- SystemResourceHost.cs
- ListViewEditEventArgs.cs
- RunInstallerAttribute.cs
- MoveSizeWinEventHandler.cs
- Parser.cs
- TimeEnumHelper.cs
- InvalidCommandTreeException.cs
- DataGridCommandEventArgs.cs
- DebugView.cs
- DataControlPagerLinkButton.cs
- SignatureDescription.cs
- CodeDelegateCreateExpression.cs
- ScrollItemProviderWrapper.cs
- SqlUserDefinedTypeAttribute.cs
- DataExchangeServiceBinder.cs
- XomlSerializationHelpers.cs
- RotateTransform3D.cs
- Margins.cs
- ButtonField.cs
- VerificationAttribute.cs
- StreamWriter.cs
- ProjectionPruner.cs
- SoapIgnoreAttribute.cs
- UpdateTracker.cs
- XmlFormatReaderGenerator.cs
- InvalidateEvent.cs
- WindowsAuthenticationModule.cs
- UIElementCollection.cs
- PrefixQName.cs
- _SslState.cs
- EntityChangedParams.cs
- TerminatingOperationBehavior.cs
- HTMLTagNameToTypeMapper.cs
- Int16KeyFrameCollection.cs
- storagemappingitemcollection.viewdictionary.cs
- SynchronizationContext.cs
- AppModelKnownContentFactory.cs
- JoinGraph.cs
- SqlDependencyUtils.cs
- LogConverter.cs
- QilTypeChecker.cs
- CodeObjectCreateExpression.cs
- XPathChildIterator.cs
- ClientSideProviderDescription.cs
- DataBindEngine.cs
- GraphicsPathIterator.cs
- UnsafeNativeMethods.cs
- _LoggingObject.cs
- TransformerConfigurationWizardBase.cs
- CodeAttributeArgument.cs
- CodeSnippetCompileUnit.cs
- IPHostEntry.cs
- HScrollBar.cs
- XhtmlBasicImageAdapter.cs
- Table.cs
- ToolbarAUtomationPeer.cs
- ComponentDispatcherThread.cs
- DataGrid.cs
- WebEventCodes.cs
- EarlyBoundInfo.cs
- NotifyIcon.cs
- MouseWheelEventArgs.cs
- TransactionFlowBindingElement.cs
- RouteTable.cs
- Comparer.cs
- PtsCache.cs
- EncryptedXml.cs
- CharKeyFrameCollection.cs
- DeobfuscatingStream.cs
- webeventbuffer.cs
- SqlSelectStatement.cs
- ClientScriptItem.cs
- StringFunctions.cs
- DefaultBinder.cs
- CompositeControl.cs
- ZipIOModeEnforcingStream.cs
- MailHeaderInfo.cs
- SQLDecimal.cs
- DependencyPropertyKey.cs
- EntityFrameworkVersions.cs
- TransactionBridge.cs
- XamlClipboardData.cs
- WhitespaceRuleReader.cs
- Column.cs