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
- SiteIdentityPermission.cs
- GenericIdentity.cs
- PointLight.cs
- StylusShape.cs
- PathFigure.cs
- OrderByQueryOptionExpression.cs
- RijndaelManagedTransform.cs
- SelectionHighlightInfo.cs
- RuleAttributes.cs
- StaticFileHandler.cs
- StringAttributeCollection.cs
- SmtpMail.cs
- CompositionCommandSet.cs
- CodeStatement.cs
- DataServiceClientException.cs
- DynamicExpression.cs
- FactoryGenerator.cs
- ComponentCollection.cs
- SqlWebEventProvider.cs
- PointLight.cs
- Walker.cs
- InternalCache.cs
- CompiledIdentityConstraint.cs
- DurableOperationAttribute.cs
- ProfileModule.cs
- ReflectPropertyDescriptor.cs
- EndpointAddressAugust2004.cs
- ElementNotAvailableException.cs
- TextSearch.cs
- HtmlInputText.cs
- MenuAutomationPeer.cs
- QueryableDataSourceView.cs
- AdornerDecorator.cs
- TableCellCollection.cs
- GroupBox.cs
- PreDigestedSignedInfo.cs
- ComponentEditorPage.cs
- WebBrowserContainer.cs
- ObfuscateAssemblyAttribute.cs
- SafeLibraryHandle.cs
- TagPrefixAttribute.cs
- LayoutManager.cs
- XamlPathDataSerializer.cs
- mactripleDES.cs
- CheckBoxPopupAdapter.cs
- EntityViewGenerator.cs
- MDIClient.cs
- PolyBezierSegmentFigureLogic.cs
- XamlPointCollectionSerializer.cs
- ApplicationFileParser.cs
- SchemaEntity.cs
- ExtentJoinTreeNode.cs
- XmlSchemaGroup.cs
- HScrollProperties.cs
- TransformGroup.cs
- NativeMethods.cs
- Rfc4050KeyFormatter.cs
- BufferBuilder.cs
- Vector3DKeyFrameCollection.cs
- SamlAuthorizationDecisionStatement.cs
- serverconfig.cs
- DocumentXmlWriter.cs
- IdentityModelDictionary.cs
- CodeDomSerializationProvider.cs
- SqlDataSourceSelectingEventArgs.cs
- UnsafeNativeMethods.cs
- StopRoutingHandler.cs
- DataSourceHelper.cs
- ResourceContainer.cs
- objectresult_tresulttype.cs
- QuadraticBezierSegment.cs
- initElementDictionary.cs
- XmlSchemaAppInfo.cs
- EdmTypeAttribute.cs
- BitmapSource.cs
- TextElement.cs
- XPathNavigatorReader.cs
- ColumnResizeUndoUnit.cs
- SQLMoneyStorage.cs
- WindowsFormsHostPropertyMap.cs
- ReadOnlyHierarchicalDataSourceView.cs
- SoapFormatExtensions.cs
- TypeExtensionConverter.cs
- OrderedDictionary.cs
- TemplatePartAttribute.cs
- ContainerAction.cs
- CommandDevice.cs
- Pointer.cs
- SchemaImporterExtensionsSection.cs
- Quaternion.cs
- HandlerWithFactory.cs
- GridViewDeletedEventArgs.cs
- CustomWebEventKey.cs
- WebPartManagerInternals.cs
- SerializationSectionGroup.cs
- GregorianCalendarHelper.cs
- AccessKeyManager.cs
- ReaderWriterLockSlim.cs
- ContentIterators.cs
- ADRoleFactory.cs