Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / SecurityKeyIdentifier.cs / 1305376 / SecurityKeyIdentifier.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Collections; using System.Collections.Generic; using System.IO; using System.Globalization; public class SecurityKeyIdentifier : IEnumerable{ const int InitialSize = 2; readonly List clauses; bool isReadOnly; public SecurityKeyIdentifier() { this.clauses = new List (InitialSize); } public SecurityKeyIdentifier(params SecurityKeyIdentifierClause[] clauses) { if (clauses == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("clauses"); } this.clauses = new List (clauses.Length); for (int i = 0; i < clauses.Length; i++) { Add(clauses[i]); } } public SecurityKeyIdentifierClause this[int index] { get { return this.clauses[index]; } } public bool CanCreateKey { get { for (int i = 0; i < this.Count; i++) { if (this[i].CanCreateKey) { return true; } } return false; } } public int Count { get { return this.clauses.Count; } } public bool IsReadOnly { get { return this.isReadOnly; } } public void Add(SecurityKeyIdentifierClause clause) { if (this.isReadOnly) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); } if (clause == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("clause")); } this.clauses.Add(clause); } public SecurityKey CreateKey() { for (int i = 0; i < this.Count; i++) { if (this[i].CanCreateKey) { return this[i].CreateKey(); } } throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.KeyIdentifierCannotCreateKey))); } public TClause Find () where TClause : SecurityKeyIdentifierClause { TClause clause; if (!TryFind (out clause)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.NoKeyIdentifierClauseFound, typeof(TClause)), "TClause")); } return clause; } public IEnumerator GetEnumerator() { return this.clauses.GetEnumerator(); } public void MakeReadOnly() { this.isReadOnly = true; } public override string ToString() { using (StringWriter writer = new StringWriter(CultureInfo.InvariantCulture)) { writer.WriteLine("SecurityKeyIdentifier"); writer.WriteLine(" ("); writer.WriteLine(" IsReadOnly = {0},", this.IsReadOnly); writer.WriteLine(" Count = {0}{1}", this.Count, this.Count > 0 ? "," : ""); for (int i = 0; i < this.Count; i++) { writer.WriteLine(" Clause[{0}] = {1}{2}", i, this[i], i < this.Count - 1 ? "," : ""); } writer.WriteLine(" )"); return writer.ToString(); } } public bool TryFind (out TClause clause) where TClause : SecurityKeyIdentifierClause { for (int i = 0; i < this.clauses.Count; i++) { TClause c = this.clauses[i] as TClause; if (c != null) { clause = c; return true; } } clause = null; return false; } IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Collections; using System.Collections.Generic; using System.IO; using System.Globalization; public class SecurityKeyIdentifier : IEnumerable { const int InitialSize = 2; readonly List clauses; bool isReadOnly; public SecurityKeyIdentifier() { this.clauses = new List (InitialSize); } public SecurityKeyIdentifier(params SecurityKeyIdentifierClause[] clauses) { if (clauses == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("clauses"); } this.clauses = new List (clauses.Length); for (int i = 0; i < clauses.Length; i++) { Add(clauses[i]); } } public SecurityKeyIdentifierClause this[int index] { get { return this.clauses[index]; } } public bool CanCreateKey { get { for (int i = 0; i < this.Count; i++) { if (this[i].CanCreateKey) { return true; } } return false; } } public int Count { get { return this.clauses.Count; } } public bool IsReadOnly { get { return this.isReadOnly; } } public void Add(SecurityKeyIdentifierClause clause) { if (this.isReadOnly) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); } if (clause == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("clause")); } this.clauses.Add(clause); } public SecurityKey CreateKey() { for (int i = 0; i < this.Count; i++) { if (this[i].CanCreateKey) { return this[i].CreateKey(); } } throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.KeyIdentifierCannotCreateKey))); } public TClause Find () where TClause : SecurityKeyIdentifierClause { TClause clause; if (!TryFind (out clause)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.NoKeyIdentifierClauseFound, typeof(TClause)), "TClause")); } return clause; } public IEnumerator GetEnumerator() { return this.clauses.GetEnumerator(); } public void MakeReadOnly() { this.isReadOnly = true; } public override string ToString() { using (StringWriter writer = new StringWriter(CultureInfo.InvariantCulture)) { writer.WriteLine("SecurityKeyIdentifier"); writer.WriteLine(" ("); writer.WriteLine(" IsReadOnly = {0},", this.IsReadOnly); writer.WriteLine(" Count = {0}{1}", this.Count, this.Count > 0 ? "," : ""); for (int i = 0; i < this.Count; i++) { writer.WriteLine(" Clause[{0}] = {1}{2}", i, this[i], i < this.Count - 1 ? "," : ""); } writer.WriteLine(" )"); return writer.ToString(); } } public bool TryFind (out TClause clause) where TClause : SecurityKeyIdentifierClause { for (int i = 0; i < this.clauses.Count; i++) { TClause c = this.clauses[i] as TClause; if (c != null) { clause = c; return true; } } clause = null; return false; } IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlSchemaDocumentation.cs
- HorizontalAlignConverter.cs
- FilteredAttributeCollection.cs
- ObfuscationAttribute.cs
- ResumeStoryboard.cs
- BindingContext.cs
- DropDownButton.cs
- CommandPlan.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- DataIdProcessor.cs
- TraceShell.cs
- XmlSchemaAppInfo.cs
- CacheChildrenQuery.cs
- Int32Storage.cs
- CompositionCommandSet.cs
- TableRow.cs
- ProgressBar.cs
- TraceSource.cs
- Attributes.cs
- DataControlImageButton.cs
- OleDbFactory.cs
- HuffCodec.cs
- SafeNativeMemoryHandle.cs
- ListControl.cs
- MetafileHeaderWmf.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- Stack.cs
- MergeLocalizationDirectives.cs
- HttpModuleCollection.cs
- XmlSubtreeReader.cs
- WasAdminWrapper.cs
- HierarchicalDataBoundControl.cs
- DefaultEventAttribute.cs
- WebRequestModuleElementCollection.cs
- GPPOINT.cs
- DiscoveryDocumentReference.cs
- SQLMoneyStorage.cs
- FontDriver.cs
- DomainLiteralReader.cs
- OleCmdHelper.cs
- IPipelineRuntime.cs
- Models.cs
- TableNameAttribute.cs
- MemberAccessException.cs
- AddressAlreadyInUseException.cs
- ExpressionBuilderCollection.cs
- ToolCreatedEventArgs.cs
- RepeaterItemEventArgs.cs
- TextParagraphProperties.cs
- TemplateBindingExtensionConverter.cs
- HtmlInputRadioButton.cs
- RtType.cs
- DispatcherHooks.cs
- TextAdaptor.cs
- SqlRemoveConstantOrderBy.cs
- Select.cs
- DragStartedEventArgs.cs
- BufferModeSettings.cs
- NetSectionGroup.cs
- DataException.cs
- CallbackTimeoutsBehavior.cs
- DataGridViewCell.cs
- activationcontext.cs
- ScriptResourceAttribute.cs
- IteratorDescriptor.cs
- TextBlockAutomationPeer.cs
- FrameworkObject.cs
- TypeConverterValueSerializer.cs
- PropertyConverter.cs
- SerialErrors.cs
- StateMachineSubscriptionManager.cs
- AttributeCollection.cs
- ProcessModule.cs
- MouseCaptureWithinProperty.cs
- DelegatingTypeDescriptionProvider.cs
- DataSourceHelper.cs
- mda.cs
- SafeFileMappingHandle.cs
- TracedNativeMethods.cs
- SQLDateTime.cs
- MappingException.cs
- UIElementPropertyUndoUnit.cs
- StyleHelper.cs
- Visual3DCollection.cs
- KeyFrames.cs
- PenLineJoinValidation.cs
- RectAnimationBase.cs
- KerberosSecurityTokenParameters.cs
- QilTypeChecker.cs
- WebControlsSection.cs
- SystemResourceKey.cs
- ProviderMetadataCachedInformation.cs
- RenderCapability.cs
- InputProviderSite.cs
- UserUseLicenseDictionaryLoader.cs
- LinqToSqlWrapper.cs
- PageAsyncTaskManager.cs
- SiteMap.cs
- ExtensionSimplifierMarkupObject.cs
- Classification.cs