Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / SecurityKeyIdentifier.cs / 1 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- X509CertificateCollection.cs
- BitmapDecoder.cs
- xdrvalidator.cs
- ParameterCollection.cs
- PanelStyle.cs
- Rectangle.cs
- GraphicsContext.cs
- CodeDOMUtility.cs
- CompareValidator.cs
- XdrBuilder.cs
- CodeAssignStatement.cs
- ListItemsCollectionEditor.cs
- TagPrefixCollection.cs
- ProtocolElementCollection.cs
- MulticastDelegate.cs
- TextSchema.cs
- XmlSchemaAll.cs
- FilteredSchemaElementLookUpTable.cs
- DecimalAnimation.cs
- SR.cs
- StringUtil.cs
- HtmlControl.cs
- WebPartUserCapability.cs
- Point3DCollectionConverter.cs
- FindCriteria.cs
- HighlightVisual.cs
- DoubleIndependentAnimationStorage.cs
- SqlFacetAttribute.cs
- XmlRawWriterWrapper.cs
- BitmapSourceSafeMILHandle.cs
- OracleTimeSpan.cs
- AttributeParameterInfo.cs
- ValidatorCompatibilityHelper.cs
- SqlWebEventProvider.cs
- PKCS1MaskGenerationMethod.cs
- WebSysDisplayNameAttribute.cs
- TabPanel.cs
- BackgroundWorker.cs
- columnmapfactory.cs
- BaseAsyncResult.cs
- SqlTypeSystemProvider.cs
- DataServiceContext.cs
- PrintingPermissionAttribute.cs
- ConnectionOrientedTransportBindingElement.cs
- SmiConnection.cs
- MonthChangedEventArgs.cs
- CrossContextChannel.cs
- FormViewDeletedEventArgs.cs
- InvariantComparer.cs
- ValidationHelper.cs
- _ChunkParse.cs
- UriSectionData.cs
- DataServiceException.cs
- TransformPatternIdentifiers.cs
- PromptEventArgs.cs
- Connector.cs
- PermissionRequestEvidence.cs
- XPathArrayIterator.cs
- CodeGeneratorOptions.cs
- OutOfProcStateClientManager.cs
- PreloadedPackages.cs
- InputLangChangeRequestEvent.cs
- MimeObjectFactory.cs
- PropertyEntry.cs
- DataRecordInternal.cs
- MediaTimeline.cs
- ConfigurationStrings.cs
- PropertyGridEditorPart.cs
- OdbcFactory.cs
- Authorization.cs
- TranslateTransform3D.cs
- HwndTarget.cs
- CustomTrackingQuery.cs
- ColorBlend.cs
- XmlSchemaAttribute.cs
- HttpRuntime.cs
- FrameworkElement.cs
- LowerCaseStringConverter.cs
- PersonalizationProvider.cs
- _UriSyntax.cs
- ProfileSettingsCollection.cs
- ThemeInfoAttribute.cs
- SystemKeyConverter.cs
- SingleObjectCollection.cs
- SecurityResources.cs
- ConfigPathUtility.cs
- CompilerState.cs
- DependencyObjectPropertyDescriptor.cs
- ItemCollection.cs
- FolderBrowserDialog.cs
- XmlEntityReference.cs
- ContextMarshalException.cs
- WebScriptMetadataMessage.cs
- CategoryGridEntry.cs
- WindowsSysHeader.cs
- SqlDependencyUtils.cs
- PrintPreviewDialog.cs
- ExternalCalls.cs
- Image.cs
- GridViewColumnHeader.cs