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
- ToolStripControlHost.cs
- MissingFieldException.cs
- CustomCredentialPolicy.cs
- IItemContainerGenerator.cs
- ProfilePropertySettings.cs
- DrawingAttributeSerializer.cs
- DataGridViewLinkColumn.cs
- CodeComment.cs
- MessageBuilder.cs
- AuthenticationModuleElement.cs
- XmlResolver.cs
- ThrowHelper.cs
- HMACSHA512.cs
- BinaryEditor.cs
- SHA256Cng.cs
- DesignerCommandAdapter.cs
- ViewBox.cs
- TemplateContainer.cs
- InputMethodStateTypeInfo.cs
- ReadOnlyActivityGlyph.cs
- MenuTracker.cs
- XmlSchemaAny.cs
- HtmlElement.cs
- translator.cs
- JavaScriptObjectDeserializer.cs
- RemoveStoryboard.cs
- DesignConnection.cs
- ViewKeyConstraint.cs
- PeerContact.cs
- DesignerEditorPartChrome.cs
- BookmarkCallbackWrapper.cs
- RuntimeUtils.cs
- BevelBitmapEffect.cs
- HtmlInputRadioButton.cs
- FormViewDesigner.cs
- QilNode.cs
- SymLanguageVendor.cs
- TextElement.cs
- CqlLexerHelpers.cs
- MachineKeySection.cs
- SoapMessage.cs
- SqlGenericUtil.cs
- ZoneButton.cs
- ConstantExpression.cs
- BeginGetFileNameFromUserRequest.cs
- KeyGesture.cs
- FormsAuthenticationConfiguration.cs
- ProviderIncompatibleException.cs
- ListViewGroupConverter.cs
- NotSupportedException.cs
- PerformanceCounterCategory.cs
- SignatureHelper.cs
- ToolboxComponentsCreatedEventArgs.cs
- MethodBuilder.cs
- SqlBulkCopyColumnMapping.cs
- ConfigurationValidatorBase.cs
- OdbcConnectionHandle.cs
- Win32SafeHandles.cs
- CustomTypeDescriptor.cs
- CipherData.cs
- SystemIPInterfaceStatistics.cs
- ObjectDataSourceMethodEventArgs.cs
- WindowsStatic.cs
- _PooledStream.cs
- DataRowCollection.cs
- XmlSerializerImportOptions.cs
- StrokeDescriptor.cs
- TailCallAnalyzer.cs
- ProgressPage.cs
- GeometryDrawing.cs
- SineEase.cs
- WebPartDescription.cs
- StandardBindingElement.cs
- WorkflowApplication.cs
- CompileLiteralTextParser.cs
- RawMouseInputReport.cs
- __Error.cs
- UniqueConstraint.cs
- Merger.cs
- ProcessInfo.cs
- ActivityTypeCodeDomSerializer.cs
- DbReferenceCollection.cs
- JoinTreeNode.cs
- RowsCopiedEventArgs.cs
- StatusBar.cs
- DataBinding.cs
- ToolStripHighContrastRenderer.cs
- PerformanceCounterPermission.cs
- DataControlFieldCell.cs
- SqlTriggerAttribute.cs
- EnumerationRangeValidationUtil.cs
- Speller.cs
- WeakReadOnlyCollection.cs
- ErrorHandlingReceiver.cs
- Control.cs
- SystemIPv6InterfaceProperties.cs
- GridViewCancelEditEventArgs.cs
- EditingCoordinator.cs
- TextContainerChangedEventArgs.cs
- HttpCacheParams.cs