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
- CompleteWizardStep.cs
- Calendar.cs
- TemplatePropertyEntry.cs
- TempFiles.cs
- ToolStripContentPanelRenderEventArgs.cs
- DeclarativeCatalogPart.cs
- TableLayoutSettings.cs
- ResourceSet.cs
- SafeRegistryHandle.cs
- Brush.cs
- OleDbEnumerator.cs
- MembershipUser.cs
- ParameterToken.cs
- BuilderInfo.cs
- WindowVisualStateTracker.cs
- XComponentModel.cs
- StringConverter.cs
- ErrorFormatterPage.cs
- SourceFileInfo.cs
- EmbeddedObject.cs
- PageSettings.cs
- ArraySet.cs
- CodeVariableReferenceExpression.cs
- AtomPub10ServiceDocumentFormatter.cs
- ObjectDataSourceMethodEventArgs.cs
- FrameworkObject.cs
- TreeViewTemplateSelector.cs
- CellParaClient.cs
- SqlNode.cs
- BufferedReceiveElement.cs
- ReadOnlyCollectionBase.cs
- _Win32.cs
- SpinWait.cs
- PeerApplicationLaunchInfo.cs
- CompoundFileIOPermission.cs
- Control.cs
- DataSourceSerializationException.cs
- SqlServer2KCompatibilityAnnotation.cs
- QuadTree.cs
- AppDomainGrammarProxy.cs
- TypeInfo.cs
- Touch.cs
- VirtualPathUtility.cs
- GraphicsPath.cs
- Effect.cs
- BitmapEffect.cs
- ErrorFormatter.cs
- HttpPostClientProtocol.cs
- ThicknessConverter.cs
- XmlnsCache.cs
- MSAAEventDispatcher.cs
- TableChangeProcessor.cs
- RequiredFieldValidator.cs
- ValidationErrorEventArgs.cs
- WindowsScrollBar.cs
- SQLDateTime.cs
- ComponentResourceKeyConverter.cs
- HtmlInputControl.cs
- MaskInputRejectedEventArgs.cs
- CodeDelegateInvokeExpression.cs
- Parameter.cs
- Number.cs
- XPathEmptyIterator.cs
- SolidColorBrush.cs
- CommandSet.cs
- Ipv6Element.cs
- SqlException.cs
- ReflectionUtil.cs
- HashMembershipCondition.cs
- SpecularMaterial.cs
- ActivityExecutionContext.cs
- GridErrorDlg.cs
- DesignerResources.cs
- Stopwatch.cs
- SignedPkcs7.cs
- ParallelQuery.cs
- ManifestBasedResourceGroveler.cs
- CalendarTable.cs
- GetPageNumberCompletedEventArgs.cs
- ByteRangeDownloader.cs
- WpfKnownMemberInvoker.cs
- RichTextBoxAutomationPeer.cs
- XmlCompatibilityReader.cs
- RenderData.cs
- WebPartTransformerCollection.cs
- GlobalProxySelection.cs
- MediaScriptCommandRoutedEventArgs.cs
- Bitmap.cs
- OutOfProcStateClientManager.cs
- RowToParametersTransformer.cs
- InvalidOleVariantTypeException.cs
- DefaultValidator.cs
- XmlSchemaAnyAttribute.cs
- PerformanceCounterPermissionAttribute.cs
- AccessibilityHelperForXpWin2k3.cs
- IdentityValidationException.cs
- EqualityArray.cs
- ToggleProviderWrapper.cs
- TextOptionsInternal.cs
- UrlAuthorizationModule.cs