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
- UriScheme.cs
- XmlSchema.cs
- TypeToken.cs
- MenuAdapter.cs
- MouseBinding.cs
- StateFinalizationActivity.cs
- WebConfigurationManager.cs
- StylusEditingBehavior.cs
- ArcSegment.cs
- CodeNamespace.cs
- XmlnsCache.cs
- HttpHandlerAction.cs
- EntityUtil.cs
- CancelEventArgs.cs
- ListViewSortEventArgs.cs
- TableTextElementCollectionInternal.cs
- EdmProperty.cs
- DoubleUtil.cs
- ToolStripHighContrastRenderer.cs
- LayoutUtils.cs
- MenuItemStyle.cs
- TimeSpanFormat.cs
- QilFunction.cs
- TimerElapsedEvenArgs.cs
- FileBasedResourceGroveler.cs
- DBDataPermission.cs
- DynamicValidatorEventArgs.cs
- CalendarDayButton.cs
- ConfigurationPropertyAttribute.cs
- DataGridViewComboBoxColumn.cs
- XmlTextWriter.cs
- CounterCreationData.cs
- HashStream.cs
- DecoderReplacementFallback.cs
- HtmlFormWrapper.cs
- TempFiles.cs
- StateWorkerRequest.cs
- ResourceExpressionBuilder.cs
- Compilation.cs
- DtdParser.cs
- Vector3DValueSerializer.cs
- LayoutTableCell.cs
- NativeMethods.cs
- HttpCachePolicyBase.cs
- MailMessage.cs
- SizeChangedInfo.cs
- TreePrinter.cs
- DiscoveryClientReferences.cs
- RNGCryptoServiceProvider.cs
- ConversionContext.cs
- ShapingEngine.cs
- ContractMapping.cs
- PropertyNames.cs
- RemotingConfigParser.cs
- DirectoryLocalQuery.cs
- LineGeometry.cs
- CurrencyManager.cs
- ContentOperations.cs
- SrgsSubset.cs
- sitestring.cs
- SkewTransform.cs
- NegotiateStream.cs
- _AcceptOverlappedAsyncResult.cs
- CustomErrorsSection.cs
- Roles.cs
- CodeTypeReferenceCollection.cs
- QilName.cs
- DiffuseMaterial.cs
- EntityDesignerUtils.cs
- PartialCachingControl.cs
- XmlSchemas.cs
- OleDbMetaDataFactory.cs
- AssemblyAttributesGoHere.cs
- AccessText.cs
- DataGridColumnStyleMappingNameEditor.cs
- JsonUriDataContract.cs
- DataGrid.cs
- EpmContentDeSerializerBase.cs
- ButtonField.cs
- ExpressionBuilder.cs
- cache.cs
- MatchAllMessageFilter.cs
- ElementHostPropertyMap.cs
- DescriptionAttribute.cs
- SessionStateContainer.cs
- ToggleButton.cs
- TreeNodeCollection.cs
- SoapEnumAttribute.cs
- DrawingAttributes.cs
- BasicBrowserDialog.designer.cs
- TraceUtils.cs
- isolationinterop.cs
- SizeLimitedCache.cs
- PageAdapter.cs
- SchemaHelper.cs
- VoiceChangeEventArgs.cs
- BlurEffect.cs
- SplitterEvent.cs
- AuthenticateEventArgs.cs
- SqlCacheDependency.cs