Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / Tokens / BinarySecretSecurityToken.cs / 1 / BinarySecretSecurityToken.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Security.Tokens { using System.Collections; using System.ServiceModel; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.IdentityModel.Tokens; using System.Security.Cryptography; using System.Text; using System.Xml; public class BinarySecretSecurityToken : SecurityToken { string id; DateTime effectiveTime; byte[] key; ReadOnlyCollectionsecurityKeys; public BinarySecretSecurityToken(int keySizeInBits) : this(SecurityUniqueId.Create().Value, keySizeInBits) { } public BinarySecretSecurityToken(string id, int keySizeInBits) : this(id, keySizeInBits, true) { } public BinarySecretSecurityToken(byte[] key) : this(SecurityUniqueId.Create().Value, key) { } public BinarySecretSecurityToken(string id, byte[] key) : this(id, key, true) { } protected BinarySecretSecurityToken(string id, int keySizeInBits, bool allowCrypto) { if (keySizeInBits <= 0 || keySizeInBits >= 512) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("keySizeInBits", SR.GetString(SR.ValueMustBeInRange, 0, 512))); } if ((keySizeInBits % 8) != 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("keySizeInBits", SR.GetString(SR.KeyLengthMustBeMultipleOfEight, keySizeInBits))); } this.id = id; this.effectiveTime = DateTime.UtcNow; this.key = new byte[keySizeInBits / 8]; CryptoHelper.FillRandomBytes(this.key); if (allowCrypto) { this.securityKeys = SecurityUtils.CreateSymmetricSecurityKeys(this.key); } else { this.securityKeys = EmptyReadOnlyCollection .Instance; } } protected BinarySecretSecurityToken(string id, byte[] key, bool allowCrypto) { if (key == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("key"); this.id = id; this.effectiveTime = DateTime.UtcNow; this.key = new byte[key.Length]; Buffer.BlockCopy(key, 0, this.key, 0, key.Length); if (allowCrypto) { this.securityKeys = SecurityUtils.CreateSymmetricSecurityKeys(this.key); } else { this.securityKeys = EmptyReadOnlyCollection .Instance; } } public override string Id { get { return this.id; } } public override DateTime ValidFrom { get { return this.effectiveTime; } } public override DateTime ValidTo { // Never expire get { return DateTime.MaxValue; } } public int KeySize { get { return (this.key.Length * 8); } } public override ReadOnlyCollection SecurityKeys { get { return this.securityKeys; } } public byte[] GetKeyBytes() { return SecurityUtils.CloneBuffer(this.key); } } } // 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
- UserValidatedEventArgs.cs
- RectConverter.cs
- RequestCache.cs
- ColumnCollection.cs
- UnionExpr.cs
- SendActivityDesignerTheme.cs
- UpdatePanel.cs
- TdsParserSafeHandles.cs
- MouseEventArgs.cs
- UntrustedRecipientException.cs
- ProcessHostFactoryHelper.cs
- DataSourceGeneratorException.cs
- SafeHandles.cs
- SqlLiftIndependentRowExpressions.cs
- SqlTypeSystemProvider.cs
- SelectionService.cs
- DialogBaseForm.cs
- AsnEncodedData.cs
- CompressStream.cs
- Application.cs
- ComPersistableTypeElementCollection.cs
- RectangleConverter.cs
- AnimatedTypeHelpers.cs
- IRCollection.cs
- DiscoveryEndpoint.cs
- AssemblyCollection.cs
- SqlXml.cs
- ManagementObject.cs
- DataTableCollection.cs
- SystemColors.cs
- EncoderParameter.cs
- Expression.cs
- CapabilitiesAssignment.cs
- XPathSingletonIterator.cs
- HistoryEventArgs.cs
- GroupBoxRenderer.cs
- SerializableAttribute.cs
- FactoryGenerator.cs
- TreeView.cs
- PreviewPageInfo.cs
- List.cs
- URLAttribute.cs
- ObjectPersistData.cs
- HtmlTextViewAdapter.cs
- ResourceExpressionBuilder.cs
- DataReceivedEventArgs.cs
- ErrorItem.cs
- AssemblyBuilder.cs
- NetStream.cs
- DataTableMapping.cs
- GridViewSelectEventArgs.cs
- SafeRegistryHandle.cs
- Clipboard.cs
- VisualStyleInformation.cs
- ObjectSet.cs
- CachedPathData.cs
- CompositionAdorner.cs
- TextBoxRenderer.cs
- NotImplementedException.cs
- PenLineCapValidation.cs
- RegexReplacement.cs
- NameValueConfigurationElement.cs
- OutputScopeManager.cs
- XamlNamespaceHelper.cs
- StorageComplexTypeMapping.cs
- TabItemAutomationPeer.cs
- RegexStringValidatorAttribute.cs
- ContractCodeDomInfo.cs
- DelayLoadType.cs
- MappingException.cs
- RepeaterItem.cs
- BitmapFrameEncode.cs
- EmbeddedObject.cs
- PeerApplicationLaunchInfo.cs
- DuplexChannel.cs
- ForceCopyBuildProvider.cs
- PassportAuthentication.cs
- RuntimeResourceSet.cs
- PageThemeCodeDomTreeGenerator.cs
- __ComObject.cs
- DescriptionAttribute.cs
- ScrollBar.cs
- Stream.cs
- WindowsTab.cs
- Switch.cs
- TextTreeTextBlock.cs
- RequestCachePolicy.cs
- ExpressionWriter.cs
- SessionEndedEventArgs.cs
- PageRouteHandler.cs
- ActivityExecutionContextCollection.cs
- WorkflowShape.cs
- XmlDeclaration.cs
- SmtpException.cs
- WebPartCollection.cs
- PropertyCollection.cs
- BindingListCollectionView.cs
- WebEventTraceProvider.cs
- ConnectionOrientedTransportBindingElement.cs
- DynamicDataRouteHandler.cs