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
- CodeAttributeDeclarationCollection.cs
- SiteMapNodeItemEventArgs.cs
- Selector.cs
- DesignConnectionCollection.cs
- SQLDecimalStorage.cs
- ClickablePoint.cs
- ResourcesGenerator.cs
- BitHelper.cs
- ToolStripLocationCancelEventArgs.cs
- Serializer.cs
- RemoteHelper.cs
- SendKeys.cs
- NetworkCredential.cs
- _NegotiateClient.cs
- DropDownList.cs
- HierarchicalDataBoundControlAdapter.cs
- DurationConverter.cs
- EntitySetBase.cs
- TypedReference.cs
- SqlBulkCopyColumnMapping.cs
- UIElementPropertyUndoUnit.cs
- CodeIterationStatement.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- DataGridLinkButton.cs
- SystemIPInterfaceProperties.cs
- ConfigXmlComment.cs
- ReadOnlyHierarchicalDataSourceView.cs
- SafeArchiveContext.cs
- CopyOnWriteList.cs
- Button.cs
- PackagingUtilities.cs
- PublisherMembershipCondition.cs
- ProgressBarRenderer.cs
- ObjectIDGenerator.cs
- FieldMetadata.cs
- UncommonField.cs
- OracleBFile.cs
- DataMemberConverter.cs
- ProcessHostServerConfig.cs
- HttpDebugHandler.cs
- WindowProviderWrapper.cs
- IndentedTextWriter.cs
- ContractInstanceProvider.cs
- TimelineClockCollection.cs
- BitmapVisualManager.cs
- EditorZoneBase.cs
- WindowsUpDown.cs
- XmlNodeChangedEventManager.cs
- figurelengthconverter.cs
- VSWCFServiceContractGenerator.cs
- PersianCalendar.cs
- FileDialog_Vista.cs
- GridViewColumnHeaderAutomationPeer.cs
- ColumnProvider.cs
- StreamGeometry.cs
- TextTreeObjectNode.cs
- ColumnMap.cs
- ToolStripItemRenderEventArgs.cs
- TableCellCollection.cs
- ConsoleKeyInfo.cs
- DataListItemCollection.cs
- ActiveXHost.cs
- HatchBrush.cs
- XmlIlVisitor.cs
- SingleKeyFrameCollection.cs
- RawMouseInputReport.cs
- ForeignKeyConstraint.cs
- RadioButtonPopupAdapter.cs
- DockEditor.cs
- DefaultTraceListener.cs
- CapabilitiesUse.cs
- InvalidCastException.cs
- SimpleMailWebEventProvider.cs
- Trace.cs
- ImageCollectionCodeDomSerializer.cs
- Polyline.cs
- AssemblyAttributes.cs
- TraceUtility.cs
- PageClientProxyGenerator.cs
- Gdiplus.cs
- KnownTypesHelper.cs
- EFTableProvider.cs
- FixedSchema.cs
- AsyncWaitHandle.cs
- log.cs
- MatrixKeyFrameCollection.cs
- RequestTimeoutManager.cs
- SQLString.cs
- IpcChannel.cs
- KernelTypeValidation.cs
- LocatorGroup.cs
- BrowserCapabilitiesFactoryBase.cs
- _HTTPDateParse.cs
- ParamArrayAttribute.cs
- XmlDocumentFragment.cs
- WindowPattern.cs
- SQLRoleProvider.cs
- StoreItemCollection.Loader.cs
- TemplateControlParser.cs
- ResourcePool.cs