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
- DataTableTypeConverter.cs
- StreamInfo.cs
- NotFiniteNumberException.cs
- XmlTextReader.cs
- XmlNodeReader.cs
- XmlElementAttribute.cs
- Int32KeyFrameCollection.cs
- RSAPKCS1SignatureDeformatter.cs
- BrushConverter.cs
- SetterBase.cs
- CheckedPointers.cs
- NavigationHelper.cs
- WindowsStreamSecurityElement.cs
- WebHttpSecurity.cs
- TableStyle.cs
- MasterPage.cs
- FormsAuthenticationConfiguration.cs
- ImageMetadata.cs
- TemplateXamlParser.cs
- BitmapFrameDecode.cs
- LiteralControl.cs
- XsdValidatingReader.cs
- RegisterInfo.cs
- SecurityState.cs
- wmiprovider.cs
- IntranetCredentialPolicy.cs
- ProviderSettingsCollection.cs
- InputBindingCollection.cs
- CodeDOMProvider.cs
- DynamicILGenerator.cs
- QuadTree.cs
- HandleCollector.cs
- TransformCollection.cs
- TextClipboardData.cs
- DataBoundControlDesigner.cs
- XPathSingletonIterator.cs
- DatagridviewDisplayedBandsData.cs
- ObjectDataSourceChooseMethodsPanel.cs
- PixelFormatConverter.cs
- SqlConnectionManager.cs
- CalendarData.cs
- ThreadExceptionDialog.cs
- PatternMatcher.cs
- LineBreak.cs
- StylusPointProperties.cs
- PixelShader.cs
- AssemblyNameUtility.cs
- EntityKeyElement.cs
- WebPartConnectionCollection.cs
- NegotiateStream.cs
- SafeThemeHandle.cs
- EntryIndex.cs
- Attributes.cs
- UrlPath.cs
- AllowedAudienceUriElementCollection.cs
- ProxyGenerator.cs
- PropertySegmentSerializer.cs
- SQLInt16Storage.cs
- PageDeviceFont.cs
- MarginsConverter.cs
- OleAutBinder.cs
- RIPEMD160.cs
- EntityViewGenerationAttribute.cs
- Geometry3D.cs
- AssemblyCache.cs
- XpsPackagingPolicy.cs
- ReadOnlyDictionary.cs
- DetailsViewRow.cs
- DocumentDesigner.cs
- WebScriptClientGenerator.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- GacUtil.cs
- SystemWebCachingSectionGroup.cs
- FormParameter.cs
- TextBoxBaseDesigner.cs
- TripleDES.cs
- InternalDuplexChannelListener.cs
- GlyphTypeface.cs
- CfgArc.cs
- WindowsContainer.cs
- BaseTemplateParser.cs
- ProcessHost.cs
- TextServicesCompartmentContext.cs
- ProjectionQueryOptionExpression.cs
- LateBoundBitmapDecoder.cs
- DateTimeFormatInfo.cs
- DecimalAnimationUsingKeyFrames.cs
- VectorCollectionConverter.cs
- SynchronizedInputHelper.cs
- ReadOnlyAttribute.cs
- Int16AnimationUsingKeyFrames.cs
- FunctionDescription.cs
- Page.cs
- EffectiveValueEntry.cs
- PageThemeParser.cs
- ButtonField.cs
- MouseGestureConverter.cs
- BinaryConverter.cs
- ToolStrip.cs
- HtmlEncodedRawTextWriter.cs